Stream流的中间方法和终结方法有哪些
在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中还有更多其他的方法可以根据需要选择使用。****
 
                    
                     
                    
                 
                    
                 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号