作用:结合了Lambda表达式,简化集合,数组的操作
使用步骤:
-
先得到一条stream流水线,并把数据放上去
-
使用中间方法对流水线上的数据进行操作
-
使用终结方法对流水线上的数据进行操作
获取方式 | 方法名 | 说明 |
---|---|---|
单列集合 | default Stream< E >stream() | Collection中的默认方法 |
双列集合 | 无 | 无法直接使用Stream流 |
数组 | public static< T >stream(T[]array) | Array中的静态方法 |
一堆零散数据 | public static< T >stream< T >of(T...values) | stream接口中的静态方法 |
中间方法
名称 | 说明 |
---|---|
stream< T >filter(predicate<? super T>predicate) | 过滤 |
stream< T >limit(long maxsize) | 获取前几个元素 |
stream< T >skip(long n) | 跳过前几个元素 |
stream< T >distinct() | 元素去重,依赖(hashcode和equals方法) |
stream< T >stream< T >concat(stream a,stream b) | 合并a和b两个流为一个流 |
stream< R >map(Function< T ,R >mapper) | 转换流中的数据类型 |
-
中间方法:返回新的Stream流,原来的Stream流只能用一次,建议用链式编程
-
修改Stream流中的数据,不会影响原来集合或数组中的数据
终结方法
名称 | 说明 |
---|---|
void forEach(consumer action) | 遍历 |
long count() | 统计 |
toArray() | 收集流中的数据,放到数组 |
Collect(Collector collector) | 收集流中数据,放到集合中 |