Stream API

了解Stream

Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一
个则是 Stream API(java.util.stream.*)
Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对
集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。
使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数
据库查询。也可以使用 Stream API 来并行执行操作。简而言之,
Stream API 提供了一种高效且易于使用的处理数据的方式。

什么事Stream?

是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。
“集合讲的是数据,流讲的是计算!”

注意:
①Stream 自己不会存储元素。
②Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。
③Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。

Stream 的操作三个步骤

创建 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中元素做汇总的方法。

 分组:

 

 分区:

 其他收集方式:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值