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 统计最大最小平均值
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/282de26793564d4b251b3e047】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论