packagecom.cdyfsz.autoaudit.rule.tool.test;importcom.cdyfsz.autoaudit.rule.tool.dto.ExcelAuditConclusionDto;importcom.cdyfsz.autoaudit.rule.tool.utils.CollectionUtils;import java.util.*;importjava.util.concurrent.ConcurrentHashMap;importjava.util.function.Function;importjava.util.function.Predicate;importjava.util.stream.Collectors;import staticjava.util.stream.Collectors.collectingAndThen;import staticjava.util.stream.Collectors.toCollection;public classtestMain01 {public static voidmain(String[] args) {
List auditConclusionCodeList = new ArrayList<>();
ExcelAuditConclusionDto excelAuditConclusionDto1= newExcelAuditConclusionDto();
excelAuditConclusionDto1.setAuditConclusionCode("01");
excelAuditConclusionDto1.setAuditConclusion("结论1");
excelAuditConclusionDto1.setAuditConclusionParentCode("001");
ExcelAuditConclusionDto excelAuditConclusionDto2= newExcelAuditConclusionDto();
excelAuditConclusionDto2.setAuditConclusionCode("01");
excelAuditConclusionDto2.setAuditConclusion("结论1");
excelAuditConclusionDto2.setAuditConclusionParentCode("001");
ExcelAuditConclusionDto excelAuditConclusionDto3= newExcelAuditConclusionDto();
excelAuditConclusionDto3.setAuditConclusionCode("02");
excelAuditConclusionDto3.setAuditConclusion("结论2");
excelAuditConclusionDto3.setAuditConclusionParentCode("002");
auditConclusionCodeList.add(excelAuditConclusionDto1);
auditConclusionCodeList.add(excelAuditConclusionDto2);
auditConclusionCodeList.add(excelAuditConclusionDto3);if(CollectionUtils.isNotEmpty(auditConclusionCodeList)) {//去重
auditConclusionCodeList =auditConclusionCodeList.stream().collect(collectingAndThen(
toCollection(()-> new TreeSet<>(Comparator.comparing(ExcelAuditConclusionDto::getAuditConclusionCode))), ArrayList::new)
);
auditConclusionCodeList=auditConclusionCodeList.stream().collect(collectingAndThen(
toCollection(()-> new TreeSet<>(Comparator.comparing(ExcelAuditConclusionDto::getAuditConclusionCode))),ArrayList::new)
);//去重
auditConclusionCodeList =auditConclusionCodeList.stream().filter(distinctByKey(ExcelAuditConclusionDto::getAuditConclusionCode)).collect(Collectors.toList());
}for(ExcelAuditConclusionDto rd :auditConclusionCodeList){
System.out.println(rd.getAuditConclusionCode()+"====="+rd.getAuditConclusion());
}
}private static Predicate distinctByKey(Function super T, ?>keyExtractor) {
Set seen =ConcurrentHashMap.newKeySet();return t ->seen.add(keyExtractor.apply(t));
}
}