以下是一些常用的Stream操作及其说明:
Collection.stream()
:从一个集合创建流。Stream.of(T... values)
:从一组元素创建流。filter(Predicate<T>)
:过滤元素。map(Function<T, R>)
:转换每个元素。sorted()
:排序流中的元素。distinct()
:去除重复元素。limit(long maxSize)
:截取流的前几个元素。skip(long n)
:跳过流的前几个元素。forEach(Consumer<T>)
:遍历流中的每个元素。collect(Collector<T,A,R>)
:将流转换为其他形式。reduce(BinaryOperator<T>)
:将流中元素反复结合起来,得到一个值。count()
:返回流中元素的总个数。anyMatch(Predicate<T>)
:至少有一个元素匹配给定条件时返回true。allMatch(Predicate<T>)
:所有元素均匹配给定条件时返回true。noneMatch(Predicate<T>)
:没有任何元素与给定条件匹配时返回true。findFirst()
:返回流中的第一个元素。例如,以下代码展示了如何使用Stream API来处理一个字符串列表:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<String> strings = Arrays.asList("Java", "Stream", "API", "Example");
// 使用filter和map操作
List<String> filtered = strings.stream()
.filter(s -> s.startsWith("S"))
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(filtered); // 输出: [STREAM]
}
}
在这个例子中,我们首先通过.stream()
创建了一个流,然后使用filter
和map
方法来处理流中的元素,最后通过collect
方法将其收集到一个新的列表中。