每一个知识点的学习都是由某个问题引起的!
问题:

List<SysRoleMenu> roleMenus = sysRoleMenuService.list(new QueryWrapper<SysRoleMenu>().eq("role_id",id));

上面代码我们已经获得SysRoleMenu类的列表,我们的问题是如何快速的获得每个对象的menuId字段,并存储在列表中。
Stream的应用

List<Long> menuIds = roleMenus.stream().map(p -> p.getMenuId()).collect(Collectors.toList());

步骤:
1、stream()为列表的创建串行流;
2、map()方法用于映射每个元素到对应的结果,这里为将每个对象映射为menuId;
3、Collectors 类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串。Collectors.toList()将返回列表。Collectors.joining(", ")将分会逗号分隔的字符串。
总结:当我们有一个对象列表时,如果我们想要获得所有对象的某个属性集合时,使用stream是很方便的

List.stream().map(要映射的属性).collect(Collectors.toList)

关于Stream的详细知识就不做赘述,直接上链接
我愿称之为Stream讲解之最

Java8新特性Stream相关推荐

  1. java8新特性-stream对map集合进行过滤的方法

    java8新特性-stream对map集合进行过滤的方法 stream对map集合进行过滤的方法

  2. List 集合去重方式与 java8新特性stream去重

    以下介绍五种 - 不同的方法去除 Java 中 ArrayList 中的重复数据 1.使用 LinkedHashSet 删除 arraylist 中的重复数据 LinkedHashSet 是在一个 A ...

  3. Java8新特性Stream流详解

    陈老老老板 说明:新的专栏,本专栏专门讲Java8新特性,把平时遇到的问题与Java8的写法进行总结,需要注意的地方都标红了,一起加油. 本文是介绍Java8新特性Stream流常用方法超详细教学 说 ...

  4. java8新特性stream流

    参考自深蓝至尊的Java8 新特性之流式数据处理 一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式 ...

  5. java8新特性-Stream入门学习

    上一篇介绍了Lambda的学习,如果对Lambda表达式还不清晰的同学可以戳一下这个链接:java8新特性-lambda表达式入门学习.java8除了提供了Lambda表达式,操作集合的Stream ...

  6. 【Stream】java8新特性Stream流总结

    一.什么是stream 在 java8 中增加了一个新的抽象接口 Stream API,使用 Stream 操作集合类似于使用 SQL 语句数据库查找数据类似,提供直观的方法进行操作. Stream ...

  7. 夯实基础,Java8新特性Stream详细教程

    1 基本特性 Java8的API中添加了一个新的特性: 流,即stream.stream是将数组或者集合的元素视为流,流在管道中流动过程中,对数据进行筛选.排序和其他操作. 1.1 流的特性 stre ...

  8. java8新特性-stream学习

    java8除了提供了Lambda表达式,操作集合的Stream API也是新特性中最值得学习和掌握的,它大大简化了,我们操作数据集合的代码量的书写.简单来说Stream是一个抽象概念,可以通过查找,过 ...

  9. Java8新特性 - Stream - 13 - Stream的max()、min()方法详解

    1.方法介绍 [方法签名]1.Optional<T> max(Comparator<? super T> comparator);2.Optional<T> min ...

  10. Java基础学习总结(55)——java8新特性:stream

    java作为开发语言中的元老已经度过了很多年,最新的java8为我们带来了一些新特性,这些特性可以在以后的工作中为我们的开发提供更多的便捷,现在就让我们看看最新的函数式编程风格怎么在实际的开发中使用.

最新文章

  1. 练习使用 Linux 的 grep 命令
  2. 日志分析,seci-log1.03增加了web日志分析,新增了多种告警
  3. lsof 查看一个进程打开哪些fd及对应的文件或套接字操作
  4. hdu 5172(RMQ+前缀和)
  5. python360百科_python抓取360百科踩过的坑!
  6. [转]一位研究生的职业生涯规划和心得体会
  7. 玩转Linux必备知识(二)
  8. 深度学习(十五)基于级联卷积神经网络的人脸特征点定位
  9. Must 和 have to的疑问句_55 1
  10. 限制文本输入框只能输入0-9数字
  11. jQuery幸运大转盘_jQuery+PHP抽奖程序的简单实现
  12. clodop控件使用
  13. PHP合并在线电影ts格式视频文件
  14. 工作流引擎——构建企业流程管控体系
  15. 百度正式开放大数据引擎
  16. js事件驱动模型图解
  17. 岁月温柔-21 妈妈转到省医院第2天
  18. 一个复杂的json例子
  19. 项目0单节点的虚拟机做大数据开发(四万字全)
  20. 1 天卖 1.96 亿,知识付费浪潮下的喜马拉雅是如何做增长的

热门文章

  1. ORACLE中的varchar2()与nvarchar2()的讲解
  2. 前端基础之设计一个个人工作室介绍界面
  3. sql server服务看不到,显示为远程过程调用在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误10061...
  4. PMP考试资料:这个项目值得去做吗
  5. 使用Silverlight for Embedded开发绚丽的界面(1)
  6. 项目管理概述学习记录(一)
  7. WINCE6.0系统调用
  8. Pat乙级 1038 统计同成绩学生
  9. Dart 2.2 发布,谷歌推出的结构化编程语言
  10. 拥抱对手 微软崛起或靠“云计算”业务