原文链接
左闭右开
IntStream.range(min, max)
流中间操作
筛选和切片
方法 | 描述 |
filter(Predicate p) | filter(item -> item的逻辑判断 ) ,filter会保留判断条件为true的记录 |
distinct() | 筛选,通过流所生成元素的hashCode()和equals()去除重复元素 |
limit(long maxSize) | 截断流,使其元素不超过给定数量 |
skip(long n) | 跳过元素,返回扔掉前n个元素的流,若流中元素不超过n个,则返回一个空流,与limit(n)互补 |
映射
方法 | 描述 |
map(Function f) | 接收一个函数作为参数,该函数会被应用到每个元素上,并映射成一个新的元素 |
mapToDouble(ToDoubleFunction f) mapToInt(ToIntFunction f) mapToLong(ToLongFunction f) | 接收一个函数作为参数,该函数会被应用到每个元素上,生成一个新的DoubleStream/IntStream/LongStream |
flatMap(Function f) | 接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有的流连接成一个流 |
排序
方法 | 描述 |
sorted() | 生成一个新流,按自然顺序排序 |
sorted(Comparator comp) | 生成一个新流,按比较器顺序排序 |
查找与匹配
方法 | 描述 |
allMatch(Predicate p | 检查是否匹配所有元素 |
anyMatch(Predicate p) | 检查是否至少匹配一个元素 |
noneMatch(Predicate p | 检查是否没有匹配所有元素 |
findFirst() | 返回第一个元素 |
findAny() | 返回当前流中任意元素 |
方法 | 描述 |
count() | 返回流中总数 |
max(Comparator comp) | 返回流中最大值 |
min(Comparator comp) | 返回流中最小值 |
forEach(Consumer c) | 内部迭代(使用Collection接口需要用户去做迭代,称为外部迭代,相反,Stream API 使用内部迭代---它帮你把迭代做了) |
方法 | 描述 |
reduce(T iden, BinaryOperator b) | 可以将流中元素反复结合起来,得到一个值,返回T |
reduce(BinaryOperator b) | 可以将流中元素反复结合起来,得到一个值,返回Optional |
collect(Collector c) | 将流转换为其他形式,接收一个Collector接口的实现,用于给Stream中元素作汇总的方法 |