简介
java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求和、最值、排序、去重。跟之前的传统写法对比,能少写不少代码。
实例
先准备个实体类
import java.math.BigDecimal;
import java.util.Date;
public class User {
private long id;
//姓名
private String name;
//年龄
private int age;
//工号
private String jobNumber;
//性别
private int gender;
//入职日期
private Date entryDate;
//钱
private BigDecimal money;
//省略get set
...
}
分组
通过groupingBy将集合分组拆分成多个集合
//通过年龄分组、得到一个以年龄为键,用户集合为值的Map集合
Map<Integer,List<User>> groupByAge = userList.stream().collect(Collectors.groupingBy(User::getAge));
过滤
通过filter方法可以过滤某些条件
//过滤
//排除掉工号为1001的用户
//filter内添加条件、保留返回true的实例
List<User> list = userList.stream().filter(user -> !user.getJobNumber().equals("1001")).collect