当前位置 : 主页 > 编程语言 > c++ >

java8 stream流 distinc的缺陷优化代码

来源:互联网 收集:自由互联 发布时间:2021-07-03
java8 流操作中distinc无法根据对象的某一个属性名来去重,该方法是对distinc的不完善的补充,使用filter来完成,内存上要多消耗一个hashMap public static Predicate distinctByKey(Function keyExtractor) { Ma
java8 流操作中distinc无法根据对象的某一个属性名来去重,该方法是对distinc的不完善的补充,使用filter来完成,内存上要多消耗一个hashMap
public static 
 
   Predicate
  
    distinctByKey(Function
    keyExtractor) { Map
   
     seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;} //像下面这样调用就可以了,调用该distincByKey方法传入相应的lambda属性即可 persons.stream().filter(distinctByKey(p -> p.getName());
   
  
 
网友评论