java8 list去重 list轉map 兩個list取並集


今天碼程序想給一個list去個重,腦子里閃過用set過濾下,或者用list.contains()判斷循環下,最后我用的是java8,哈哈哈!

很驕傲,可以說是很喜歡了

resultList.stream().distinct().collect(Collectors.toList());

好久之后看到這,也還是挺驚喜的,當時這個居然都要寫這里, list轉map,
Function.identity()是代表本身的意思
List<TaskDto> csvTaskDtos = new ArrayList<>();
Map<String, TaskDto> csvTaskDtoMap = csvTaskDtos.stream().collect(Collectors.toMap(TaskDto::getThemeJstId, Function.identity()));

兩個list取並集 各自單獨的獨有屬性

   Set<String> systemTaskDtoMapKey = systemTaskDtoMap.keySet();
   Set<String> csvTaskDtoMapKey = csvTaskDtoMap.keySet();
   Set<String> includeBothKey =
                systemTaskDtoMapKey.stream().filter(k -> csvTaskDtoMapKey.contains(k)).collect(Collectors.toSet());
   Set<String> includeSystemKey =
                systemTaskDtoMapKey.stream().filter(k -> !csvTaskDtoMapKey.contains(k)).collect(Collectors.toSet());
   Set<String> includeCsvKey =
                csvTaskDtoMapKey.stream().filter(k -> !systemTaskDtoMapKey.contains(k)).collect(Collectors.toSet());

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM