学习地址:https://www.jianshu.com/p/34b338059be2
https://juejin.im/post/5cc124a95188252d891d00f2#heading-7
代码写法:
public static void main(String[] args) {
List<Intelligence> intelligences = new ArrayList<>();
for(int i = 0 ; i < 100 ; i++){
Intelligence intelligence = new Intelligence();
intelligence.setIntelligenceId((long) (Math.random()*10));
intelligences.add(intelligence);
}
List<Intelligence> pp = intelligences.parallelStream().filter(distinctByKey(Intelligence::getIntelligenceId)).collect(Collectors.toList());
System.out.println(pp);
}
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Set<Object> seen = ConcurrentHashMap.newKeySet();
return t -> seen.add(keyExtractor.apply(t));
}