A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© heifachangcun 中级黑马   /  2018-12-2 15:28  /  395 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

流式思想概述
Stream流式思想处理数据的方式:
让代码的执行像流水线一样, 先设计好处理方案, 然后一按开关开始执行
流相比于集合的2个优点:
1. Pipelining(管道特性): "可以链式调用"
Stream流对象的 延迟方法 调用后, 会返回新的Stream流对象, 可以链式调用每个方法类似于一条一条的管道, 衔接了不同的处理方案
2. 内部迭代特性: "不用写for循环"
集合遍历通过 Iterator 或者 增强for, 显式的在集合外部进行迭代, 这叫做外部迭代
Stream提供了内部迭代的方法 forEach(Consumer c), 可以直接调用遍历方法
使用Stream流的3个步骤:
1. 获取数据源 (从"集合"或"数组"转换为"Stream"对象)
2. 数据处理 (调用延迟方法, 编写处理方案)
3. 获得结果 (调用终结方法, 启动开关)
Stream流的特点: 只能使用一次
每次调用延迟方法返回的Stream流对象, 都是经过处理后返回的"新的Stream流对象"
之前的Stream流在调用方法后, 已经使用过并关闭了, 不能再次使用, 否则会抛出异常:
java.lang.IllegalStateException: stream has already been operated upon or closed
收集器的作用:
收集Stream操作后的结果, 转换为其他容器
对流操作完成之后, 如果需要将其结果进行收集, 例如转换为对应的"集合"或"数组"等
方法引用: Method Reference
如果Lambda表达式仅仅是调用一个已经存在的方法, 那就可以通过方法引用来替代Lambda表达式
作用: 简化Lambda表达式
:: 方法引用运算符, 它所在的表达式被称为方法引用
Lambda表达式写法:
(String s) -> System.out.println(s)
  参数传递给System.out.println()方法去打印
方法引用写法:  
System.out::println
引用System.out.println()方法中代码, 来作为Lambda中重写方法的实现方式





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马