原文链接
左闭右开
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中元素作汇总的方法 |