0
点赞
收藏
分享

微信扫一扫

java8之引入流


1.filter(筛选):接受Lanbda,从流中排出某些元素


2.map(提取):接受一个Lanbda,将元素转换成其他形式或提取信息


3.limit(截断):截断流,使其元素不超过给定数量


4.distinct:筛选掉重复的元素


4.collect:将流转换为其他形式


注:流只能消费一次


5.使用Collection接口需要用户去做迭代(比如用for-each),这称为外部迭代。 相反, Streams库使用内部迭代


6.Streams库的内部迭代可以自动选择一种适 合你硬件的数据表示和并行实现


7.可以连接起来的流操作称为中间操作,关闭流的操作称为终端操作


8.使用流


流的使用一般包括三件事:


 一个数据源(如集合)来执行一个查询;


 一个中间操作链,形成一条流的流水线;


 一个终端操作,执行流水线,并能生成结果。



中间操作


操作

类型

返回类型

操作参数

函数描述符

filter

中间

Stream<T>

Predicagte<T>

T->boolean

map

中间

Stream<R>

Function<T,R>

T->R

limit

中间

Stream<T>

sorted

中间

Stream<T>

Comparator<T>

(T,T)->int

distinct

中间

Stream<T>


终端操作


操作

类型

目的

forEach

终端

消费流中的每个元素并对其应用 Lambda。这一操作返回 void

count

终端

返回流元素的个数。这一操作返回long

collect

终端

把流归约成一个集合,比如List、Map甚至是Integer


举报

相关推荐

0 条评论