20230618 java.util.stream.Stream
介绍
java.util.stream.Streampublic 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.Builderpublic interface Builder<T> extends Consumer<T>
API
- add
- 同 
accept 
 - 同 
 - build
- 返回 
Stream 
 - 返回 
 
继承 Consumer
- accept
 - andThen
 
                    
                
                
            
        
浙公网安备 33010602011771号