写点什么

Stream 操作

用户头像
风翱
关注
发布于: 刚刚

中间操作:

1、选择与过滤

filter(Predicate p) 接收 Lambda , 从流中排除某些元素。

distinct() 筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素。

limit(long maxSize) 截断流,使其元素不超过给定数量。

skip(long n) 跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,则返回一个空流。


2、映射

map(Function f) 接收 Lambda , 将元素转换成其他形式或提取信息;接收一个函数作为参数,该

函数会被应用到每个元素上,并将其映射成一个新的元素。

mapToDouble(ToDoubleFunction f) 接收一个函数作为参数,该函数会被应用到每个元素上,产

生一个新的 DoubleStream。

mapToInt(ToIntFunction f) 接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的

IntStream。

mapToLong(ToLongFunction f) 接收一个函数作为参数,该函数会被应用到每个元素上,产生一个

新的 LongStream。

flatMap(Function f) 接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接

成一个流。


3、排序

sorted() 产生一个新流,其中按自然顺序排序.

sorted(Comparator comp) 产生一个新流,其中按比较器顺序排序.


终止操作:

allMatch——检查是否匹配所有元素

anyMatch——检查是否至少匹配一个元素


1.查找与匹配 noneMatch——检查是否没有匹配的元素

findFirst——返回第一个元素

findAny——返回当前流中的任意元素

count——返回流中元素的总个数

max——返回流中最大值

min——返回流中最小值

2.归约 reduce, 需要初始值(类比 Map-Reduce)

3.收集 collect

toList List<T> 把流中元素收集到 List

toSet Set<T> 把流中元素收集到 Set

toCollection Collection<T> 把流中元素收集到创建的集合


4.迭代 forEach

count 计算流中元素的个数

summaryStatistics 统计最大最小平均值


发布于: 刚刚阅读数: 2
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
Stream 操作