继Java 8系列之Lambda表达式之后,我们来了解Stream。Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等。
1:对年龄和名字同时进行去重
public static void main(String[] args) {
us u=fa.fa(1);
us u2=fa.fa(1);
us u3=fa.fa(1);
List<us> list=new ArrayList<>();
u.setAge(10);
u.setName("张三");
list.add(u);
u2.setAge(13);
u2.setName("李四");
list.add(u2);
u3.setAge(13);
u3.setName("李四");
list.add(u3);
List<us> usList=list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(s->s.getName()+";"+s.getAge()))),ArrayList::new));
usList.forEach(userList->{
System.out.println(userList.getName()+userList.getAge());
});
}
2:对年龄进行过滤筛选
List<us> userDiscont=list.stream().filter(us -> us.getAge()==10).collect(Collectors.toList());