用法
1)第一步 | 把集合转换为流stream |
2)第二步 | 操作stream流,stream流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果 |
操作符
两种:中间操作符、终止操作符
中间操作符
流方法 | 含义 |
---|---|
filter | 用于通过设置的条件过滤出元素 |
distinct | 返回一个元素各异(根据流所生成元素的hashCode和equals方法实现)的流。 |
limit | 会返回一个不超过给定长度的流。 |
skip | 返回一个扔掉了前n个元素的流。 |
map | 接受一个函数作为参数。这个函数会被应用到每个元素上,并将其映射成一个新的元素(使用映射一词,是因为它和转换类似,但其中的细微差别在于它是“创建一个新版本”而不是去“修改”)。 |
flatMap | 使用flatMap方法的效果是,各个数组并不是分别映射成一个流,而是映射成流的内容。所有使用map(Arrays::stream)时生成的单个流都被合并起来,即扁平化为一个流。 |
sorted | 返回排序后的流 |
终止操作符
方法 | 含义 |
---|---|
anyMatch | 检查是否至少匹配一个元素,返回boolean。 |
allMatch | 检查是否匹配所有元素,返回boolean。 |
noneMatch | 检查是否没有匹配所有元素,返回boolean。 |
findAny | 将返回当前流中的任意元素。 |
findFirst | 返回第一个元素 |
forEach | 遍历流 |
collect | 收集器,将流转换为其他形式。 |
reduce | 可以将流中元素反复结合起来,得到一个值。 |
count | 返回流中元素总数。 |