Java8 List集合过滤出符合条件的List元素集合

Java8 List集合过滤出符合条件的List元素集合

  • 新增实体类
      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()));
      }
    }
    
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页