java过滤结果集方法_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;

}

@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

*/

public static List stuList() {

List stuList = new ArrayList();

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 stuList = stuList();

// 需要筛选的条件:从stuList中筛选出年龄为21和22的学生

List ageList = new ArrayList();

ageList.add(21);

ageList.add(22);

// JDK1.8提供了lambda表达式, 可以从stuList中过滤出符合条件的结果。

// 定义结果集

List 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()));

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值