20230618 java.util.stream.Stream
介绍
java.util.stream.Stream
public interface Stream<T> extends BaseStream<T, Stream<T>>
- 对应基本类型类:
IntStream
,LongStream
,DoubleStream
API
static
- builder
- 返回 Builder
创建流:
- of
- ofNullable
- empty
创建无限流:
-
iterate
-
generate
-
concat
<T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b)
- 合并流
public
中间操作
filter , map , flatMap
- filter
Stream<T> filter(Predicate<? super T> predicate);
- map, mapToInt, mapToLong, mapToDouble,
<R> Stream<R> map(Function<? super T, ? extends R> mapper);
- flatMap, flatMapToInt, flatMapToLong, flatMapToDouble
<R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);
- 产生一个流,它是通过将 mapper 应用于当前流中所有元素所产生的结果连接到一起而获得的(注意,这里的每个结果都是一个流)
- mapMulti, mapMultiToInt, mapMultiToLong, mapMultiToDouble
<R> Stream<R> mapMulti(BiConsumer<? super T, ? super Consumer<R>> mapper)
- 每一个流元素都会调用 mapper ,并且所有在调用期间传递给 Consumer 的元素都会被添加到结果流中
抽取子流和组合流
- limit
- 产生一个流,包含当前流中最前的 n 个元素
- skip
- 反
limit
- 包含当前流中除了最前的 n 个元素
- 反
- takeWhile
Stream<T> takeWhile(Predicate<? super T> predicate)
- 在谓词为真时收集元素,在第一个为假的元素位置终止
- 不同与
filter
会遍历所有元素
- dropWhile
- 反
takeWhile
- 在谓词为真时丢弃元素,在第一个为假的元素位置开始收集
- 反
- concat
- 合并流
其他
- distinct
- sorted
- peek
终止操作
-
min
-
max
-
count
-
forEach
-
forEachOrdered
forEachOrdered
配合并行流
-
toArray
-
toList
-
reduce
- 约简
-
collect
- 收集
-
anyMatch
-
noneMatch
-
findFirst
-
findAny
Builder
介绍
java.util.stream.Stream.Builder
public interface Builder<T> extends Consumer<T>
API
- add
- 同
accept
- 同
- build
- 返回
Stream
- 返回
继承 Consumer
- accept
- andThen