有个需求,我要获取一个部门下所有的人员年龄在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流根据条件过滤集合对象相关推荐

  1. 使用Stream流的方式,遍历集合,对集合中的数据进行过滤

    Stream的更优写法 下面来看一下借助Java 8的Stream API,什么才叫优雅: package com.learn.demo01.Stream;import java.util.Array ...

  2. Java使用对象使用属性过滤集合对象重复数据

    使用流Stream方式过滤对象中重复的数据-Java使用对象使用属性过滤集合对象重复数据 1.先创建一个方法工具类 private static <T> Predicate<T> ...

  3. java8 按条件过滤集合

    //黄色部分为过滤条件list.stream().filter(user-> user.getId() > 5 && "1组".equals(user. ...

  4. 使用Stream流实现数组与集合的相互转换

    // 将 List 元素存储到数组中 List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); i ...

  5. js filter 多条件过滤适合对象属性

    let condition={name:"123",age:10,level:""} //筛选条件 let data=[]; //数据源//过滤方法filter ...

  6. 使用java8新特性stream流实现获取String集合中最长的元素

    public class StreamTest {public static void main(String[] args) {List<String> list = Arrays.as ...

  7. Map集合、Stream流、File类、递归

    一,JDK8新特性:Stream 1,认识Stream 也叫Stream流,是jdk8开始新增的一套API (java.util.stream.*),可以用于操作集合或者数组的数据. 优势: Stre ...

  8. 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 ...

  9. Java8种Stream流相关操作——集合的筛选、归约、分组、聚合

    过滤.筛选   filter skip /*** 过滤 筛选*/@Testpublic void test2(){List<String> list = Arrays.asList(&qu ...

最新文章

  1. centos修改oracle字符集
  2. 2005年博客与web2.0十大最拽的武侠人物
  3. C++class类(II)
  4. Solr所有的查询解析器Query Parsers(转:http://blog.csdn.net/jiangchao858/article/details/53859731)
  5. 使用 .NET 平台,如何玩转 Universal Windows 应用?
  6. 不能不说的C#特性-表达式树
  7. 怎么讲gis里的符号化_地信(GIS)方向考研~?测绘科学与技术
  8. 软考网规论文-论企业内部网的安全策略
  9. 关于linux内核版本说法,关于Linux内核版本的说法,以下错误的是( )
  10. 动软代码生成器 常用函数
  11. [Power--IC]电源管理IC-STNS01
  12. 程序员制作epub电子书
  13. 应用Joyoshare VidiKit裁剪视频的小技巧
  14. CentOS程序包管理、上
  15. 广义相对论-学习记录3-第二章-狭义相对论2
  16. am解调matlab程序,基于Matlab的AM调制解调.doc
  17. bzoj1022: [SHOI2008]小约翰的游戏John 博弈
  18. SpringBoot:入门简单使用
  19. Excel 斜线表头制作方法
  20. Scrapy框架 - 学习日记2

热门文章

  1. 传统节日祝福问候时机分析
  2. 使用jQuery实现我要发帖
  3. mac在线看html5,Mac看HTML5视频教程
  4. java课程设计俄罗斯方块_JAVA课程设计——俄罗斯方块
  5. 【ArcGIS二次开发】鹰眼的实现
  6. BitBlt函数用法
  7. 2013 全国高校计算机等级考试(广西考区)一级笔试试题,全国高校计算机等级考试广西考区一级笔试试题卷...
  8. 运筹与决策(三)求解线性规划、运输问题和0-1整数规划问题
  9. 【教学视频】LCR数字电桥如何选择并联或串联模式?
  10. 手机下载linux版xmame,Linux_比较全的linux下xmame的配置, linux下可以用xmame来玩街机 - phpStudy...