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-2025 CODEPRJ.COM