Java stream通过集合,对于里面的某一个字段进行去重

           /**
             * ,collect是一个终端操作,它接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器)
             *
             *
             * Collectors是一个工具类,是JDK预实现Collector的工具类,它内部提供了多种Collector
             *Collectors收集器类对流中的数据进行聚合操作,
             *
             *
             * TreeSet中的元素,如果是实体,必须得传比较器(或者实体类需要实现Comparable中的compareTo方法),不然就会报错
             *TreeSet是Set的子类,里面的元素有序且不能重复,可以去重
             *
             */

list------你需要处理的集合
FtExOrderGoods----集合里面对象,也就是泛型里面的,getName—需要去重的字段

list.stream().collect(
                        Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(FtExOrderGoods::getName))), ArrayList::new)));

你可能感兴趣的:(后端)