在项目开发的过程中,我们经常会对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 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

Java中List集合过滤出符合条件的List元素集合相关推荐

  1. 如何从一个大规模的文本中筛选出符合条件的记录

    现在是大数据时代.尤其是互联网企业,任何一个人都有可能拿到一份庞大的数据.不管你是否具有数据处理的能力,你都要面对它. 面对突如其来的一份庞大的数据,该怎样来对付它呢?这时候用SqlCel正是一个非常 ...

  2. 【python】numpy array 找出符合条件的数并赋值

    在python中利用numpy array进行数据处理,经常需要找出符合某些要求的数据位置,有时候还需要对这些位置重新赋值.这里总结了几种找出符合条件数据位置的方法. 这里以一个8*8的随机数组举例, ...

  3. java鼠标右击出现选择窗口_java菜单代码 java中鼠标右击弹出菜单怎样实现

    帮忙给一个java菜单栏例子的源代码 给你个小例子,已经添加注释了.自己运行下看看效果,满意的话记得结贴子. import java.awt.BorderLayout; import java.awt ...

  4. 已知abc+cba=1333,其中abc均为一位数,求出符合条件的abc的值

    已知abc+cba=1333,其中abc均为一位数,求出符合条件的abc的值 #include<stdio.h> int main(){int a,b,c;for(a=1;a<=9; ...

  5. Java中的字节输入出流和字符输入输出流

    Java中的字节输入出流和字符输入输出流 下面哪个流类属于面向字符的输入流( ) A BufferedWriter  B FileInputStream  C ObjectInputStream  D ...

  6. 用stream流来遍历处理list,筛选出符合条件的list,并对其中某些值求和

    用过就记录一下,筛选符合条件的,并计算某个元素的和.用stream流来遍历处理list,筛选出符合条件的list,并对其中某些值求和 代码如下 List<OctvBoardCheckEquip& ...

  7. Sublime Text编辑器 过滤所有符合条件的查找行

    Sublime Text编辑器 过滤所有符合条件的查找行 习惯了windows,第一次用Mac,好多工具不熟悉, 一, 1,输入.选中要查找的字符串 2,⌃ ⌘ G 快速查找所有的 (⌃ 这个是con ...

  8. Matlab:查找符合条件的数组元素

    Matlab:查找符合条件的数组元素 应用单个条件 应用多个条件 替换符合条件的值 此示例说明如何通过对数组应用条件来过滤数组元素.例如,您可以检查矩阵中的偶数元素.查找多维数组中所有 0 值的位置, ...

  9. java 根据条件从list中筛选出符合条件的集合_Java8 Stream:2万字20个实例,玩转集合的筛选、归约、分组、聚合

    点波关注不迷路,一键三连好运连连! 先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里. 统计员工的最高薪资.平均薪资.薪资之和. 将员 ...

最新文章

  1. /etc/sysctl.conf参数解释
  2. 今天发现了VISTA系统的一个BUG
  3. 票务系统思维导图_最全思维导图分享,告诉你如何系统的学好软件测试。
  4. “贩卖”国潮新鲜感的花西子、完美日记们,能炒多久?
  5. wireshark 抓包调试 RTSP
  6. ruby gem passenger依赖关系
  7. Android的一些布局小知识点
  8. android ble 连续读写,Android BLE实现对蓝牙的读写
  9. oracle类似isempty,NULLs和empty strings在不同数据库的中特点
  10. 不管你的编程技术多菜,这都要掌握!
  11. spring mvc controller json数据
  12. Springboot+Dubbo+Nacos 注解方式实现微服务调用
  13. rto净化效率计算公式_旋转式RTO,催化燃烧设备,在各行业的应用及优势
  14. 邮件服务器IMail教程(2)
  15. Win10将引入HomeHub功能 和Google Home和Amazon Echo竞争
  16. 三 Hibernate持久化状态主键生成策略
  17. InnoSetup 如何获取安装程序的路径?
  18. 操作系统源码及GeekOS学习
  19. 《人类简史》二、认知革命——上帝之手的秘密
  20. 15b万用表怎么测电容_万用表怎么用?福禄克15B+一机详解万用表的使用方法

热门文章

  1. android开源社区
  2. 要命啦!Word中快速录入大全,内含快捷键小技巧,快来一起学习!
  3. 浏览器选择 html,select的最佳预设打造全兼容各浏览器select
  4. 使用opentelemetry-go操作Jaeger
  5. 梦幻西游藏宝阁不显示服务器,玩转梦幻西游藏宝阁全服搜索功能体验
  6. win10电脑的时间怎样设置
  7. 希腊字母的读法[转]
  8. Android S 新特性:应用行为更改
  9. 微信小程序【生命周期】
  10. Python 打地鼠小游戏