Stream流根据条件过滤集合对象
有个需求,我要获取一个部门下所有的人员年龄在30岁并且是高级工程师和技术专家的人员信息。
当然sql也可以处理这个需求,但是我现在用代码处理这个需求,java8Stream流式思想可以帮我们解决这个问题。
我们先定义一个部门人员集合DeptUser
@Data
public class DeptUser {//用户idprivate int userId;//年龄private int age;//性别private String sex;//职位级别private String technology;public DeptUser() {}public DeptUser(int userId, int age, String sex, String technology) {this.userId = userId;this.age = age;this.sex = sex;this.technology = technology;}
}
List<DeptUser> deptUserList = new ArrayList<>();deptUserList.add(new DeptUser(1,22,"女","李诗诗","高级工程师"));deptUserList.add(new DeptUser(2,30,"女","陈圆圆","高级工程师"));deptUserList.add(new DeptUser(3,25,"男","韩子高","助理工程师"));deptUserList.add(new DeptUser(4,30,"男","卫玠","技术专家"));deptUserList.add(new DeptUser(5,21,"女","苏小小","中级工程师"));//我们来用Stresm流处理List<DeptUser> collect = deptUserList.stream().filter(s -> s.getAge() == 30).filter(s -> s.getTechnology().equals("高级工程师") || s.getTechnology().equals("技术专家")).collect(Collectors.toList());//打印输出collect.forEach(System.out::println);
打印输出:
DeptUser(userId=2, age=30, sex=女, name=陈圆圆, technology=高级工程师)
DeptUser(userId=4, age=30, sex=男, name=卫玠, technology=技术专家)
Stream流根据条件过滤集合对象相关推荐
- 使用Stream流的方式,遍历集合,对集合中的数据进行过滤
Stream的更优写法 下面来看一下借助Java 8的Stream API,什么才叫优雅: package com.learn.demo01.Stream;import java.util.Array ...
- Java使用对象使用属性过滤集合对象重复数据
使用流Stream方式过滤对象中重复的数据-Java使用对象使用属性过滤集合对象重复数据 1.先创建一个方法工具类 private static <T> Predicate<T> ...
- java8 按条件过滤集合
//黄色部分为过滤条件list.stream().filter(user-> user.getId() > 5 && "1组".equals(user. ...
- 使用Stream流实现数组与集合的相互转换
// 将 List 元素存储到数组中 List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); i ...
- js filter 多条件过滤适合对象属性
let condition={name:"123",age:10,level:""} //筛选条件 let data=[]; //数据源//过滤方法filter ...
- 使用java8新特性stream流实现获取String集合中最长的元素
public class StreamTest {public static void main(String[] args) {List<String> list = Arrays.as ...
- Map集合、Stream流、File类、递归
一,JDK8新特性:Stream 1,认识Stream 也叫Stream流,是jdk8开始新增的一套API (java.util.stream.*),可以用于操作集合或者数组的数据. 优势: Stre ...
- 24.1 传统集合的多步遍历代码、Stream流更优写法与stream、forEach、filter、count、limit、skip、concat方法、静态方法:tream.of()
目录 1 传统集合的多步遍历代码 2 Stream的更优写法 3 Stream流 3.1 Stream流:获取流 列:单列集合.双列集合.数组获取stream流 3.2 Stream流中的常用方法:f ...
- Java8种Stream流相关操作——集合的筛选、归约、分组、聚合
过滤.筛选 filter skip /*** 过滤 筛选*/@Testpublic void test2(){List<String> list = Arrays.asList(&qu ...
最新文章
- centos修改oracle字符集
- 2005年博客与web2.0十大最拽的武侠人物
- C++class类(II)
- Solr所有的查询解析器Query Parsers(转:http://blog.csdn.net/jiangchao858/article/details/53859731)
- 使用 .NET 平台,如何玩转 Universal Windows 应用?
- 不能不说的C#特性-表达式树
- 怎么讲gis里的符号化_地信(GIS)方向考研~?测绘科学与技术
- 软考网规论文-论企业内部网的安全策略
- 关于linux内核版本说法,关于Linux内核版本的说法,以下错误的是( )
- 动软代码生成器 常用函数
- [Power--IC]电源管理IC-STNS01
- 程序员制作epub电子书
- 应用Joyoshare VidiKit裁剪视频的小技巧
- CentOS程序包管理、上
- 广义相对论-学习记录3-第二章-狭义相对论2
- am解调matlab程序,基于Matlab的AM调制解调.doc
- bzoj1022: [SHOI2008]小约翰的游戏John 博弈
- SpringBoot:入门简单使用
- Excel 斜线表头制作方法
- Scrapy框架 - 学习日记2
热门文章
- 传统节日祝福问候时机分析
- 使用jQuery实现我要发帖
- mac在线看html5,Mac看HTML5视频教程
- java课程设计俄罗斯方块_JAVA课程设计——俄罗斯方块
- 【ArcGIS二次开发】鹰眼的实现
- BitBlt函数用法
- 2013 全国高校计算机等级考试(广西考区)一级笔试试题,全国高校计算机等级考试广西考区一级笔试试题卷...
- 运筹与决策(三)求解线性规划、运输问题和0-1整数规划问题
- 【教学视频】LCR数字电桥如何选择并联或串联模式?
- 手机下载linux版xmame,Linux_比较全的linux下xmame的配置, linux下可以用xmame来玩街机 - phpStudy...