Commit e027ff53 authored by licc's avatar licc

查询方案优化

parent fe1e4525
......@@ -717,43 +717,17 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
}
//从剩下来的数据中再重复上步操作
//从剩下的数据中随机抽取,添满数组
if (result.size() < total) {
List<Volunteer> otherListB = new ArrayList<>();
Map<String, List<Volunteer>> mapB = otherList.stream().collect(Collectors.groupingBy(Volunteer::getLowestMark
));
for (Map.Entry<String, List<Volunteer>> entry : mapB.entrySet()) {
List<Volunteer> volunteerList = entry.getValue();
if (volunteerList.size() > 2) {
for (int i = 0; i < 2; i++) {
Random mRandom = new Random();
int number = mRandom.nextInt(volunteerList.size());
result.add(volunteerList.get(number));
volunteerList.remove(number);
}
otherListB.addAll(volunteerList);
} else {
result.addAll(volunteerList);
}
if (result.size() >= total) {
return result.subList(0, total);
}
}
//从剩下的数据中随机抽取,添满数组
if (result.size() < total) {
int number = total - result.size();
List<Volunteer> volunteers = new ArrayList<>();
for (int i = 0; i < number; i++) {
Random mRandom = new Random();
int count = mRandom.nextInt(otherListB.size());
volunteers.add(otherListB.get(count));
otherListB.remove(number);
}
result.addAll(volunteers);
int number = total - result.size();
List<Volunteer> volunteers = new ArrayList<>();
for (int i = 0; i < number; i++) {
Random mRandom = new Random();
int count = mRandom.nextInt(otherList.size());
volunteers.add(otherList.get(count));
otherList.remove(number);
}
result.addAll(volunteers);
}
return result;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment