Java8 list根據對象某個屬性去重


1. 添加方法:

import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;

private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }

2. 使用:

facultyRetList = facultyList.stream().filter(distinctByKey(Faculty::getId)).collect(Collectors.toList());

 


免責聲明!

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



猜您在找 java8 list中根據對象多屬性去重 Java8:按照對象的屬性,對List集合分組 Java 8 List<對象> 根據其中屬性去重過濾 返回List<對象> java8 按照list中對象的子對象的某個屬性排序 java8 把List 根據某字段去重 List集合常規去重與java8新特性去重方法 java8 list轉map,list集合中的元素的屬性轉set,list集合中對象的屬性轉list,list 排序,list分組,條件過濾 List對象得到多個屬性List並去重方案比較 Java8-使用stream實現list中對象屬性的合並(去重並求和) 【java8】使用lambda表達式對List去重
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM