Java教程

java8 利用 ConcurrentHashMap list根据 某个属性 去重

本文主要是介绍java8 利用 ConcurrentHashMap list根据 某个属性 去重,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//自定义方法
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;
}
//使用

List<BindedNote> knowledgeList = page.getResult().stream().filter(distinctByKey(BindedNote::getNoteId)).collect(Collectors.toList());
这篇关于java8 利用 ConcurrentHashMap list根据 某个属性 去重的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!