java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求和、最值、排序、去重。跟之前的传统写法对比,能少写不少代码。
@Data
public class User {
private Long id;
//姓名
private String name;
//年龄
private int age;
//工号
private String jobNumber;
//性别
private String sex;
//入职日期
private Date entryDate;
//家庭成员数量
private BigDecimal familyMemberQuantity;
}
1.分组
通过groupingBy可以分组指定字段
//分组
Map<String, List<User>> groupBySex = userList.stream().collect(Collectors.groupingBy(User::getSex));
//遍历分组
for (Map.Entry<String, List<User>> entryUser : groupBySex.entrySet()) {
String key = entryUser.getKey();
List<User> entryUserList = entryUser.getValue();
2.过滤
通过filter方法可以过滤某些条件
//过滤
//排除掉工号为201901的用户
List