java集合通过对象属性进行去重
程序员文章站
2022-07-03 20:06:37
...
java集合通过对象属性进行去重
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;
}
使用:
(根据实体类的name属性进行去重)
list.stream().filter(distinctByKey(Entity::getName)).collect(Collectors.toList())
推荐阅读
-
Java8利用stream的distinct()方法对list集合中的对象去重和抽取属性去重
-
Java8利用stream的distinct()方法对list集合中的对象去重和抽取属性去重
-
【转载】C#中通过Distinct方法对List集合进行去重
-
java集合通过对象属性进行去重
-
Java8使用stream实现list中对象属性的合并(去重并求和)
-
关于java的List集合对象去重及按属性去重的8种方法
-
java8实现List中对象属性的去重方法
-
集合去重 (集合元素为引用类型)--- java 8 新特性 --- 根据元素单属性、多属性实现去重
-
java8 list中根据对象多属性去重
-
java1.8对根据字段属性对集合去重处理和lambda过滤集合