> 文章列表 > 【Stream流的常用方法案例】

【Stream流的常用方法案例】

【Stream流的常用方法案例】

Java 8 中的 Stream API 提供了许多方法,下面是一些常见的方法和示例:

filter():过滤出符合条件的元素

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().filter(x -> x % 2 == 0).collect(Collectors.toList());
// 输出:[2, 4]

map():将元素转换成新的元素。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().map(x -> x * x).collect(Collectors.toList());
// 输出:[1, 4, 9, 16, 25]

flatMap():将元素转换成新的 Stream,并将多个 Stream 合并成一个 Stream。

List<List<Integer>> list = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4, 5), Arrays.asList(6, 7, 8, 9));
List<Integer> result = list.stream().flatMap(Collection::stream).collect(Collectors.toList());
// 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]

distinct():去重。

List<Integer> list = Arrays.asList(1, 2, 2, 3, 3, 4, 5);
List<Integer> result = list.stream().distinct().collect(Collectors.toList());
// 输出:[1, 2, 3, 4, 5]

sorted():排序。

List<Integer> list = Arrays.asList(5, 3, 1, 4, 2);
List<Integer> result = list.stream().sorted().collect(Collectors.toList());
// 输出:[1, 2, 3, 4, 5]

limit():限制输出数量

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().limit(3).collect(Collectors.toList());
// 输出:[1, 2, 3]

skip():跳过指定数量的元素。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().skip(2).collect(Collectors.toList());
// 输出:[3, 4, 5]

forEach():对每个元素执行一些操作。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().forEach(x -> System.out.print(x + " "));
// 输出:1 2 3 4 5

reduce():将流中所有元素聚合成一个元素。

List<Integer> list = Arrays.asList(1,, 2, 3, 4, 5);
int result = list.stream().reduce(0, (a, b) -> a + b);
// 输出:15

collect():将流中的元素收集到集合中。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = list.stream().filter(x -> x % 2 == 0).collect(Collectors.toList());