前一段时间写一些统计类的功能,需要对一个类里面几个联合的属性做唯一性的筛选,我就搜了一下关于java8关于Lambda表达式,不得不说,Lambda还是和强大的。废话不说了,下面就直接贴代码啦!
ArrayList<User> collect = dataList.stream().collect( collectingAndThen( toCollection(() -> new TreeSet<>(Comparator.comparing(User::getKey))), ArrayList::new) );
注:我把需要做唯一性筛选的几个属性组合成了一个属性--key,dataList是需要做筛选的数据集合。