Stream流常用操作

发布时间 2023-09-24 23:48:33作者: hwj7

Stream流是Java 8引入的一个新特性,它提供了一种更简洁、更高效的方式来处理集合数据。Stream流的操作可以分为两种:中间操作和终端操作。

中间操作(Intermediate Operations):

  1. filter(Predicate<T> predicate):根据指定的条件过滤流中的元素。
  2. map(Function<T, R> mapper):将流中的每个元素通过指定的函数映射为另一个元素。
  3. flatMap(Function<T, Stream<R>> mapper):将流中的每个元素通过指定的函数映射为一个流,并将所有流合并为一个流。
  4. distinct():去除流中的重复元素。
  5. sorted(Comparator<T> comparator):对流中的元素进行排序。
  6. peek(Consumer<T> action):对流中的每个元素执行指定的操作,但不改变流中的元素。

终端操作(Terminal Operations):

  1. forEach(Consumer<T> action):对流中的每个元素执行指定的操作。
  2. toArray():将流中的元素转换为数组。
  3. reduce(BinaryOperator<T> accumulator):将流中的元素依次进行指定的二元操作,返回一个Optional对象。
  4. collect(Collector<? super T, A, R> collector):将流中的元素收集到指定的容器中,返回一个新的容器。
  5. min(Comparator<T> comparator):返回流中的最小元素。
  6. max(Comparator<T> comparator):返回流中的最大元素。
  7. count():返回流中的元素个数。
  8. anyMatch(Predicate<T> predicate):判断流中是否有任意一个元素满足指定的条件。
  9. allMatch(Predicate<T> predicate):判断流中是否所有元素都满足指定的条件。
  10. noneMatch(Predicate<T> predicate):判断流中是否没有元素满足指定的条件。
  11. findFirst():返回流中的第一个元素。