Stream
-
创建流
- empty 创建空元素的stream
- of 传入元素创建stream
- iterate 通过UnaryOperator元算器,创建无限个元素的stream
- generate 通过Supplier 提供函数接口,创建 无限个元素的stream
- concat 合并多个流
-
中间流
-
filter 过滤
-
map 一对一转换
-
flatMap 一对多转换
-
distinct 过滤去重, Object.equals(Object)(需要重写equals,hashcode)
-
sorted 排序 (要不是已经实现了Comparable接口重写方法,或者传入Comparator比较器)
-
peek 主要是非业务操作,比如调试等
-
limit 只取多少个就中断
-
skip 跳过元素
-
-
终端流
-
forEach 循环
-
toArray 转数组
-
reduce 累积(传入BinaryOperator 运算器)
-
collect 收集器
-
R collect(Supplier supplier, BiConsumer<R,? super T> accumulator, BiConsumer<R,R> combiner)
-
supplier——最终结果容器。(可选)
accumulator——计算临时结果的过。
combiner——把临时结果导入最终容器。(可选)
List<String> asList = stringStream.collect(ArrayList::new, ArrayList::add, ArrayList::addAll);
-
-
<R,A> R collect(Collector<? super T,A,R> collector)
- Collector 收集器接口 Collectors默认的一些收集策略
Collectors - toList 转list - toSet 转set - joining 把元素拼接起来 - groupingBy 元素进行分组 - ......
-
-
min 传入Comparator比较器,获取最小值
-
max 传入Comparator比较器,获取最大值
-
count 获取元素个数
-
anyMatch 传入Predicate 断言 任意一个匹配上返回true
-
allMatch 传入Predicate 断言 全匹配上返回true
-
noneMatch 传入Predicate 断言 没匹配上返回true
-
findFirst 获取第一个元素
-
findAny 获取任意一个元素
-