Java8的Stream如何使用
导读:本文共7050.5字符,通常情况下阅读需要24分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一:什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作Java中的Stream并不会存储元素,而是按需计算。 数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。 和... ...
目录
(为您整理了一些要点),点击可以直达。Stream(流)是一个来自数据源的元素队列并支持聚合操作
Java中的Stream并不会存储元素,而是按需计算。 数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。
聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。 和以前的Collection操作不同,Stream操作还有两个基础的特征如下:
Pipelining: 中间操作都会返回流对象本身。 这样多个操作可以串联成一个管道, 如同流式风格。 这样做可以对操作进行优化, 比如延迟执行和短路。
内部迭代: 以前对集合遍历都是通过Iterator或者For-Each的方式, 显式的在集合外部进行迭代, 这叫>做外部迭代。 Stream提供了内部迭代的方式, 通过访问者模式(Visitor)实现。
中间操作常用方法有:筛选:filter 映射:map 排序:sorted提取与组合 收集:collect。
终止操作:遍历:foreach 匹配:find、match 规约:reduce 聚合:max、min、count。
Optional findFirst();
Optional findAny();
boolean allMatch(Predicate<? super T> predicate);
boolean anyMatch(Predicate<? super T> predicate);
boolean noneMatch(Predicate<? super T> predicate);
基本使用 Stream流中的Match相关方法使用代码如:
public static Collector<T, ?, List> toList():转换为List集合。
public static Collector<T, ?, Set> toSet():转换为Set集合。
public static <T, K, U> Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends U> valueMapper):转换为Map集合。
Java8的Stream如何使用的详细内容,希望对您有所帮助,信息来源于网络。