Stream流根据条件过滤集合对象
有个需求,我要获取⼀个部门下所有的⼈员年龄在30岁并且是⾼级⼯程师和技术专家的⼈员信息。
当然sql也可以处理这个需求,但是我现在⽤代码处理这个需求,java8Stream流式思想可以帮我们解决这个问题。
我们先定义⼀个部门⼈员集合DeptUser
@Data
public class DeptUser {
//⽤户id
private int userId;
//年龄
private int age;
//性别
private String sex;
//职位级别
private String technology;
public DeptUser() {
}
public DeptUser(int userId, int age, String sex, String technology) {
this.userId = userId;
this.age = age;
this.sex = sex;
filter过滤对象数组
}
}
List<DeptUser> deptUserList = new ArrayList<>();
deptUserList.add(new DeptUser(1,22,"⼥","李诗诗","⾼级⼯程师"));
deptUserList.add(new DeptUser(2,30,"⼥","陈圆圆","⾼级⼯程师"));
deptUserList.add(new DeptUser(3,25,"男","韩⼦⾼","助理⼯程师"));
deptUserList.add(new DeptUser(4,30,"男","卫玠","技术专家"));
deptUserList.add(new DeptUser(5,21,"⼥","苏⼩⼩","中级⼯程师"));
//我们来⽤Stresm流处理
List<DeptUser> collect = deptUserList.stream().filter(s -> s.getAge() == 30).filter(s -> s.getTechnology().equals("⾼级⼯程师") || s.getTechnology().equals("技        //打印输出
collect.forEach(System.out::println);
打印输出:
DeptUser(userId=2, age=30, sex=⼥, name=陈圆圆, technology=⾼级⼯程师)
DeptUser(userId=4, age=30, sex=男, name=卫玠, technology=技术专家)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。