实测数据去重好方法
去重方法1
public class DataDealWithUtil {
public static Predicate distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object, Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
}
resultList = resultList.stream().filter(DataDealWithUtil.distinctByKey(o -> o.getDistinct())).collect(Collectors.toList());
去重方法2
resultList = resultList .stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(BusinessMsgBean :: getId))), ArrayList::new));
去重方法有很多,但这种方法我一直用,感觉很好用,分享一下。
本文分享了两种高效的数据去重方法,包括使用ConcurrentHashMap进行去重和利用TreeSet结合Comparator实现去重,这两种方法在实际应用中表现优秀,值得学习。
345

被折叠的 条评论
为什么被折叠?



