600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Java中List集合过滤出符合条件的List元素集合

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

时间:2020-05-31 17:35:45

相关推荐

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

在项目开发的过程中,我们经常会对List集合进行按条件的过滤,筛选出我们想要的结果或者是符合项目需求的数据。比如:我们有一批学生对象,每个学生都有自己的年龄属性,但是我们想要筛选出这一批学生中年龄为21和22的所有学生,我们就需要对这一批学生集合中的数据进行按条件的筛选,得到我们想要的结果。

创建学生实体类:

package com.shsj.entity;public class Student {private Integer stuNum; // 学号private String name; // 姓名private Integer age; // 年龄public Integer getStuNum() {return stuNum;}public void setStuNum(Integer stuNum) {this.stuNum = stuNum;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Student [stuNum=" + stuNum + ", name=" + name + ", age=" + age + "]";}}

使用Java8中的lambda表达式过滤

package com.shsj.test;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;import com.shsj.entity.Student;/*** @Description 按条件筛选出List集合中的数据* @author 刘鹏博* @version v1.0* @date 8月23日*/public class FilterListTest {/*** @Description 创建四个学生对象并设值,保存在list集合中,模拟数据* @author 刘鹏博* @return List<Student>*/public static List<Student> stuList() {List<Student> stuList = new ArrayList<Student>();Student stu1 = new Student();stu1.setStuNum(0823);stu1.setName("张三");stu1.setAge(20);stuList.add(stu1);Student stu2 = new Student();stu2.setStuNum(0824);stu2.setName("李四");stu2.setAge(21);stuList.add(stu2);Student stu3 = new Student();stu3.setStuNum(0825);stu3.setName("王二");stu3.setAge(21);stuList.add(stu3);Student stu4 = new Student();stu4.setStuNum(0826);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()));}}

有关更多Java8 lambda表达式的使用可参考:/16436.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。