三、JDK1.8新特性之Stream
1.Stream
- 流(Stream)是对集合或数组中数据的操作,通过一系列操作得到最终想要的数据。
2.Stream特点
- 操作是延迟执行的(只有需要结果时才会执行操作–终止操作)
- 不会存储元素。
- 不会该改变原对象,只是返回一个新的Stream流。
3.操作流程
- 创建一个流–>操作(转换成新流)–>终止(执行操作并得到结果)
4.使用
- 创建Stream(常用)
- Collection接口中的stream()–串行流和parallelStream()–并行流方法获取流
- Arrays工具类中的stream()方法
- 操作
- filter:过滤,按照一定的条件筛选满足条件的数据;
- 源码:Stream filter(Predicate<? super T> predicate);
- limit:截取流中的元素,只取前几个
- 源码:Stream limit(long maxSize);
- skip:跳过流中的前n个元素,只取后面全部的元素
- 源码:Stream skip(long n);
- distinct:去重
- sorted:对流中的元素进行排序
- 源码:
Stream sorted();
Stream sorted(Comparator<? super T> comparator);
- 源码:
- map:将数据映射成另外的数据
- 源码: Stream map(Function<? super T, ? extends R> mapper);
- parallel:获取并行流
- filter:过滤,按照一定的条件筛选满足条件的数据;
- 终止
- forEach:遍历数据
- min:求最小
- max:求最大
- count:数量大小
- collect:将数据收集起来
- reduce:规约