private List<GenErrQsTask> getDistinctList(List<GenErrQsTask> genErrQsTaskListList) {
List<GenErrQsTask> newList = new ArrayList<>();
Map<String, List<GenErrQsTask>> map =
//按照createDate排序 reversed()是反转,升序变为降序,也就是说把最新的数据放到list首
genErrQsTaskListList.stream().sorted(Comparator.comparing(GenErrQsTask::getCreateDate).reversed())
// 正常是用::符号就可以 但是我这个对象比较特殊有三层的属性所以这么写了
.collect(Collectors.groupingBy(genErrQsTask -> genErrQsTask.getExamPaper().getPaperId()));
for (Map.Entry<String, List<GenErrQsTask>> entry : map.entrySet()) {
if (ListUtils.isNotEmpty(entry.getValue()))
//取list首并放入到新list中
newList.add(entry.getValue().get(0));
}
return newList;
}
先排序后分组