⚫ 创建 Stream
一个数据源(如:集合、数组),获取一个流 ⚫ 中间操作 一个中间操作链,对数据源的数据进行处理 ⚫ 终止操作(终端操作) 一个终止操作,执行中间操作链,并产生结果 Steam的中间操作多个中间操作可以连接起来形成一个流水线,除非流水 线上触发终止操作,否则中间操作不会执行任何的处理! 而在终止操作时一次性全部处理,称为“惰性求值”
筛选与切片
filter(Predicate p):
limit:
(短路:一旦找到指定数量的数据后,就不再查询)
skip:
(丢掉前两个)
distinct:(去重,需要在对象中重写hashCode和equals方法)
映射
map:将流中的每一个元素都用到函数中,然后再生成一个结果。
flatMap:将流中每一个元素中的每一个值转换成一个流。
排序
sorted()--自然排序(Comparable)安装Comparable排序的
sorted(Comparator com)---定制排序(Comparator)
终止操作:
终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,例如:List、Integer,甚至void
查找与匹配
归约
reduce和map的链接在工作中应用比较多,通常称为map-reduce模式
收集
collect将流转换为其他形式。接收一个Collector接口的实现,用于给Stream中元素做汇总的方法。
分组:
分区:
其他收集方式:



