引入流

1.filter(筛选):接受Lanbda,从流中排出某些元素
2.map(提取):接受一个Lanbda,将元素转换成其他形式或提取信息
3.limit(截断):截断流,使其元素不超过给定数量
4.distinct:筛选掉重复的元素
4.collect:将流转换为其他形式
注:流只能消费一次
5. 使用 Collection 接口需要用户去做迭代(比如用 for-each ),这称为外部迭代。 相反, Streams库使用内部迭代
6.S treams库的内部迭代可以自动选择一种适 合你硬件的数据表示和并行实现
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

猜你喜欢

转载自blog.csdn.net/lyx_win/article/details/80559201