20230618 java.util.stream.Stream

发布时间 2023-06-19 11:02:18作者: 流星<。)#)))≦

介绍

  • java.util.stream.Stream
  • public interface Stream<T> extends BaseStream<T, Stream<T>>

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

  • 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