Java 8 新特性 用 Collectors 对 List 去重

  • 场景:有一个实体的List集合,需要根据实体中的某个字段对List去重

  • Collectors.collectingAndThen方法:将流中的数据通过Collector计算,计算的结果再通过Function处理一下(这里是将TreeSet转为ArrayList。即相当于将最终结果又经过了new ArrayList<>(treeSet))

List<实体类> distinctClass = value.stream().collect(Collectors
        .collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(实体类::去重的字段))), ArrayList::new));

这样就完成去重操作了

原文地址:https://www.cnblogs.com/GuyCui/p/14254115.html