示例 1: 使用 arraycopy 连接两个数组
import java.util.Arrays; public class Concat { public static void main(String[] args) { int[] array1 = {1, 2, 3}; int[] array2 = {4, 5, 6}; int aLen = array1.length; int bLen = array2.length; int[] result = new int[aLen + bLen]; System.arraycopy(array1, 0, result, 0, aLen); System.arraycopy(array2, 0, result, aLen, bLen); System.out.println(Arrays.toString(result)); } }
输出
[1, 2, 3, 4, 5, 6]
在上面的程序中,我们有两个整数数组
array1和
array2。
为了组合(连接)两个数组,我们找到其长度分别存储在
aLen 和
bLen 中。然后,我们创建一个新的整数数组结果,长度为
aLen + bLen。
现在,为了将两者结合起来,我们使用
arraycopy()
函数将两个数组中的每个元素复制到结果。
arraycopy(array1, 0, result, 0, aLen)
函数,简单来说就是告诉程序从索引
0
<开始复制
array1/code> 到
result 从索引
0
到
aLen。
开始复制
同样,对于
arraycopy(array2, 0, result, aLen, bLen)
告诉程序将
array2 从索引
0
开始复制到
result
从索引
aLen 到
bLen。
示例 2: 不使用 arraycopy 连接两个数组
import java.util.Arrays;
public class Concat {
public static void main(String[] args) {
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int length = array1.length + array2.length;
int[] result = new int[length];
int pos = 0;
for (int element : array1) {
result[pos] = element;
pos++;
}
for (int element : array2) {
result[pos] = element;
pos++;
}
System.out.println(Arrays.toString(result));
}
}
输出
[1, 2, 3, 4, 5, 6]
在上面的程序中,我们没有使用
arraycopy
,而是手动将数组
array1和
array2的每个元素复制到
result .
我们存储
result所需的总
length,即
array1.length + array2、长度
。然后,我们创建一个新的长度数组结果。
现在,我们使用 for-each 循环遍历
array1 的每个元素并将其存储在
result 中。赋值后,我们将位置
pos加1,
pos++
。
同样,我们对
array2 做同样的事情,并将每个元素存储在
result 中,从
array1 之后的位置开始。