新增实体类
public class Student {
private Integer stuNum; // 学号
private String name; // 姓名
private Integer age; // 年龄
省略set get 或加 @Data
}
使用Java8中的lambda表达式过滤
public class FilterListTest {
/**
* @Description 创建四个学生对象并设值,保存在list集合中,模拟数据
* @return List<Student>
*/
public static List<Student> stuList() {
List<Student> stuList = new ArrayList<Student>();
Student stu1 = new Student();
stu1.setStuNum(20180823);
stu1.setName("张三");
stu1.setAge(20);
stuList.add(stu1);
Student stu2 = new Student();
stu2.setStuNum(20180824);
stu2.setName("李四");
stu2.setAge(21);
stuList.add(stu2);
Student stu3 = new Student();
stu3.setStuNum(20180825);
stu3.setName("王二");
stu3.setAge(21);
stuList.add(stu3);
Student stu4 = new Student();
stu4.setStuNum(20180826);
stu4.setName("张五");
stu4.setAge(22);
stuList.add(stu4);
return stuList;
}
public static void main(String[] args) {
List<Student> stuList = stuList();
// 需要筛选的条件:从stuList中筛选出年龄为21和22的学生
List<Integer> ageList = new ArrayList<Integer>();
ageList.add(21);
ageList.add(22);
// JDK1.8提供了lambda表达式, 可以从stuList中过滤出符合条件的结果。
// 定义结果集
List<Student> result = null;
result = stuList.stream()
.filter((Student s) -> ageList.contains(s.getAge()))
.collect(Collectors.toList());
// 打印原有stuList集合中的数据
System.out.println("原有stuList集合中的数据");
stuList.forEach((Student s) -> System.out.println(s.getName() + "--->" + s.getAge()));
// 打印过滤筛选后的result结果
System.out.println("过滤筛选后的result结果");
result.forEach((Student s) -> System.out.println(s.getName() + "--->" + s.getAge()));
}
}