如何合并数组

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在 Java 中,经常需要将两个或多个数组合并为一个数组。这可以通过 Java 8 的流 API 来实现。在本实验中,我们将学习如何使用 Java 代码将多个数组合并为一个数组。

创建 Java 文件

首先,使用以下命令在 ~/project/ 目录下创建一个名为 ArraysJoin.java 的 Java 文件:

touch ~/project/ArraysJoin.java

导入所需库

导入使用 Java 8 流 API 所需的库。

import java.util.stream.Stream;

定义两个数组

定义你想要合并的两个数组。这里,我们定义了两个字符串数组 asiaeurope

String[] asia = new String[]{"India", "Russia", "Japan"};
String[] europe = new String[]{"Poland", "Germany", "France"};

使用 Stream API 合并数组

现在,使用 Java 8 的 Stream API 初始化一个新数组,该数组是两个数组的组合。

String[] countries = Stream.of(asia,europe).flatMap(Stream::of).toArray(String[]::new);

在上面的示例中,flatMap() 方法用于合并两个数组并将其转换为字符串流,而 toArray() 方法将流转换为字符串数组。

打印合并后的数组

最后,使用 for 循环打印合并后的数组元素。

for (String country : countries) {
    System.out.println(country);
}

合并流

我们还可以使用 concat() 方法合并两个流,该方法会返回一个指定类型的流。以下示例展示了如何将两个或多个流合并为一个流。

Stream<Integer> stream1 = Stream.of(1, 2, 3);
Stream<Integer> stream2 = Stream.of(4, 5, 6);
//concat arrays
Stream<Integer> result = Stream.concat(stream1, stream2);
result.forEach(System.out::println);

编译 Java 文件

使用以下命令编译 Java 文件:

javac ~/project/ArraysJoin.java

运行 Java 程序

使用以下命令运行 Java 程序:

java -cp ~/project ArraysJoin

输出:

India
Russia
Japan
Poland
Germany
France
1
2
3
4
5
6

总结

在本实验中,我们学习了如何使用 Java 8 的流 API 将多个数组合并为一个数组。我们还学习了如何将多个流合并为一个流。在处理需要存储在单一数据源平台中的大量数据时,数组和流的合并与连接概念在编程中非常有用。