欢迎访问宙启技术站
智能推送

Java函数-如何使用StreamAPI进行集合操作

发布时间:2023-07-04 13:58:38

Stream API是Java 8中非常强大的新特性之一,它提供了一种流式操作集合的方式,可以非常方便地进行各种集合操作,包括过滤、映射、排序、聚合等。

在使用Stream API进行集合操作之前,需要先将集合转换为Stream对象。可以通过集合的stream()方法来获取一个Stream对象。例如:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

Stream<Integer> stream = numbers.stream();

接下来,可以使用Stream对象来进行各种集合操作。

1.过滤:可以使用filter()方法来过滤Stream中的元素,只保留满足条件的元素。例如:

List<Integer> evenNumbers = numbers.stream()

                                   .filter(n -> n % 2 == 0)

                                   .collect(Collectors.toList());

上述代码中,使用filter()方法过滤出了numbers中的偶数,最后将结果保存在evenNumbers集合中。

2.映射:可以使用map()方法对Stream中的元素进行映射操作,将每个元素转换成另外一个元素。例如:

List<Integer> squareNumbers = numbers.stream()

                                     .map(n -> n * n)

                                     .collect(Collectors.toList());

上述代码中,使用map()方法将numbers中的每个元素进行平方操作,最后将结果保存在squareNumbers集合中。

3.排序:可以使用sorted()方法对Stream中的元素进行排序操作。例如:

List<Integer> sortedNumbers = numbers.stream()

                                     .sorted()

                                     .collect(Collectors.toList());

上述代码中,使用sorted()方法对numbers中的元素进行排序,默认是按照自然顺序进行排序,最后将结果保存在sortedNumbers集合中。

4.聚合:可以使用reduce()方法将Stream中的元素合并为一个。例如:

int sum = numbers.stream()

                 .reduce(0, (a, b) -> a + b);

上述代码中,使用reduce()方法将numbers中的元素依次相加,初始值为0,最后返回结果sum。

除了上述常用的集合操作之外,Stream API还提供了许多其他的操作方法,如distinct()方法用于去重,limit()方法用于限制结果集的大小,forEach()方法用于逐个处理元素,等等。

总之,Stream API提供了一种强大而便捷的方式来操作集合,可以大大简化代码,提高开发效率。