Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等。
1.filter筛选数据//获取用户的列表
List list = UserService.getUserList();
//通过filter来筛选出用户名称为【李白】的用户信息,如果没有获取到则返回null
list.stream().filter(u-> u.getUserName().equals("李白")).findAny().orElse(null);
2.Collectors.groupingBy()分组数据
2.1 单个条件分组//获取用户的列表
List list = UserService.getUserList();
//collect中Collectors.groupingBy()实现通过userName分组数据,分成多个map
Map> userInfoMap = list.stream().collect(Collectors.groupingBy(UserInfo::getUserName));
2.2 根据不同条件分组Map> userInfoMap = list.stream().collect(Collectors.groupingBy(item -> {
if(item.getUserName().equals("李白")){
return "诗仙";
}else{
return "";
}
}));
2.3 多级分组