Java中List集合过滤出符合条件的List元素集合
程序员文章站
2022-06-10 18:34:01
...
在项目开发的过程中,我们经常会对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;
}
@Override
public 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 2018年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(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()));
}
}
有关更多Java8 lambda表达式的使用可参考:http://www.importnew.com/16436.html
上一篇: 长白头发吃什么好,你们知道吗
下一篇: AngularJS教程之简单应用程序示例
推荐阅读
-
【转载】C#中List集合使用RemoveRange方法移除指定索引开始的一段元素
-
【转载】 C#中通过Where方法查找出所有符合条件的元素集合
-
【转载】C#中List集合使用LastOrDefault方法查找出最后一个符合条件的元素
-
【转载】C#中List集合使用RemoveAt方法移除指定索引位置的元素
-
【转载】C#中List集合使用Reverse方法对集合中的元素进行倒序反转
-
【转载】C#中List集合使用IndexOf判断元素第一次出现的索引位置
-
【转载】C#中List集合使用LastIndexOf判断元素最后一次出现的索引位置
-
在C#中List集合使用First()方法获取第一个元素的操作
-
java中List集合及其实现类的方法详解
-
Java 中初始化 List 集合的 6 种方式!