📜  Java中的数组 stream() 方法(1)

📅  最后修改于: 2023-12-03 15:02:02.330000             🧑  作者: Mango

Java中的数组 stream() 方法

在Java中,数组是一种常见的数据结构,用于存储一组相同类型的元素。Java 8引入了流(Stream)的概念,用于对集合和数组进行操作。Java中的数组也可以通过 stream() 方法来创建流。在本文中,我们将介绍Java中的数组 stream() 方法。

什么是流?

流是Java 8引入的一个新的抽象概念,它允许将对集合和数组的操作进行流水线化。流可以进行过滤、映射、排序、聚合等操作,使得对集合和数组的处理更加简洁和高效。

数组 stream() 方法

Java中的数组是一种简单的数据结构,它存储了一组相同类型的元素。在Java 8中,数组可以通过 stream() 方法来创建流。数组的 stream() 方法返回一个流,可以用于对数组进行各种操作。

在使用数组的 stream() 方法之前,需要将数组转换为流。可以通过调用Arrays.stream()方法来转换数组为流,示例代码如下所示:

int[] numbers = {1, 2, 3, 4, 5};
IntStream stream = Arrays.stream(numbers);

上述代码中,我们定义了一个整型数组numbers,然后使用Arrays.stream()方法将数组转换为流。转换后的流是一个IntStream类型的流,可以对整型数组进行各种操作。

数组流的常用操作

通过数组的 stream() 方法创建的流,可以进行多种常用操作。下面列举了一些常用的数组流操作:

1. 遍历数组元素

通过调用流的forEach()方法,可以简洁地遍历数组中的每个元素,示例代码如下所示:

int[] numbers = {1, 2, 3, 4, 5};
Arrays.stream(numbers).forEach(System.out::println);

上述代码中,我们将数组numbers转换为流,并使用forEach()方法打印出每个元素的值。

2. 求数组元素的和

通过调用流的sum()方法,可以计算数组中所有元素的和,示例代码如下所示:

int[] numbers = {1, 2, 3, 4, 5};
int sum = Arrays.stream(numbers).sum();
System.out.println("Sum: " + sum);

上述代码中,我们将数组numbers转换为流,并通过sum()方法计算数组元素的和。

3. 过滤数组元素

通过调用流的filter()方法,可以对数组元素进行过滤,返回满足条件的元素流,示例代码如下所示:

int[] numbers = {1, 2, 3, 4, 5};
IntStream evenNumbers = Arrays.stream(numbers).filter(n -> n % 2 == 0);
evenNumbers.forEach(System.out::println);

上述代码中,我们将数组numbers转换为流,并使用filter()方法过滤出偶数元素,并打印出结果。

4. 映射数组元素

通过调用流的map()方法,可以对数组元素进行映射,返回经过映射后的元素流,示例代码如下所示:

int[] numbers = {1, 2, 3, 4, 5};
IntStream squaredNumbers = Arrays.stream(numbers).map(n -> n * n);
squaredNumbers.forEach(System.out::println);

上述代码中,我们将数组numbers转换为流,并使用map()方法对每个元素进行平方操作,并打印出结果。

5. 排序数组元素

通过调用流的sorted()方法,可以对数组元素进行排序,返回排序后的元素流,示例代码如下所示:

int[] numbers = {5, 1, 4, 2, 3};
IntStream sortedNumbers = Arrays.stream(numbers).sorted();
sortedNumbers.forEach(System.out::println);

上述代码中,我们将数组numbers转换为流,并使用sorted()方法对元素进行排序,并打印出排序结果。

总结

本文介绍了Java中的数组 stream() 方法。通过数组的 stream() 方法,可以创建流对象,并对数组进行各种操作,例如遍历、求和、过滤、映射、排序等。数组的 stream() 方法可以使对数组的处理更加简洁和高效。使用流的好处是可以将集合和数组的操作进行流水线化处理,提高代码的可读性和可维护性。

参考文献:

  • Java 8 Arrays Stream: https://www.baeldung.com/java-8-arrays-stream