Java函数-如何使用StreamAPI进行集合操作
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提供了一种强大而便捷的方式来操作集合,可以大大简化代码,提高开发效率。
