/**
* 根据指定属性去重
*/
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;
}
//使用
XXXXList.stream().filter(distinctByKey(XXXClass::getId)).collect(Collectors.toList());
根据集合元素的某个属性去重
最新推荐文章于 2023-03-10 10:32:37 发布