在Java 8及更高版本的Stream API中,Stream操作可以分为中间操作(Intermediate Operations)和终结操作(Terminal Operations)。下面是两类方法的一些常见示例:
中间操作(Intermediate Operations):
中间操作不会立即执行任何处理,而是返回一个新的Stream。这些操作可以链接起来形成一个流水线,只有当终端操作被执行时,流中的元素才会按照指定的方式进行处理。
filter(Predicate<? super T> predicate)
:过滤出满足条件的元素。map(Function<? super T, ? extends R> mapper)
:将每个元素应用给定函数映射为新值。flatMap(Function<? super T, ? extends Stream<? extends R>> mapper)
:对每个元素应用函数生成新的Stream,并将其扁平化到单个Stream中。sorted()
或sorted(Comparator<? super T> comparator)
:对Stream中的元素进行排序。distinct()
:去除重复元素,使得输出的Stream中没有重复的元素。limit(long maxSize)
:限制Stream最多包含多少个元素。skip(long n)
:跳过前n个元素,返回剩余元素的Stream。
终结操作(Terminal Operations):
终结操作会导致Stream的计算发生,一旦执行了终结操作,Stream就不能再被使用。终结操作会消费Stream并产生最终结果或副作用。
forEach(Consumer<? super T> action)
:对Stream中的每个元素执行提供的操作。collect(Collector<? super T, A, R> collector)
:将Stream元素收集到特定的结果容器中,通常用于转换成集合、列表、数组等。toArray()
:将Stream转换为数组。reduce(BinaryOperator<T> accumulator)
:通过二元运算符从Stream中累积元素生成单一结果。min(Comparator<? super T> comparator)
和max(Comparator<? super T> comparator)
:找到Stream中的最小或最大元素。count()
:返回Stream中元素的数量。anyMatch(Predicate<? super T> predicate)
、allMatch(Predicate<? super T> predicate)
、noneMatch(Predicate<? super T> predicate)
:检查Stream是否至少有一个元素匹配给定条件、所有元素都匹配条件或没有任何元素匹配条件。
这些是Stream API中最为常用的中间和终结操作,实际上API中还有更多其他的方法可以根据需要选择使用。****
标签:Predicate,Stream,终结,元素,predicate,操作,方法 From: https://www.cnblogs.com/itcq1024/p/18004589