在這個程序中,您將學習使用arraycopy和不使用arraycopy在Java中連接兩個數(shù)組。
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]
在上面的程序中,我們有兩個整數(shù)數(shù)組array1和array2。
為了合并(連接)兩個數(shù)組,我們將其長度分別存儲在aLen和bLen中。然后,我們創(chuàng)建一個長度為aLen + bLen的新整數(shù)數(shù)組結(jié)果。
現(xiàn)在,為了將兩者結(jié)合在一起,我們使用arraycopy()函數(shù)將兩個數(shù)組中的每個元素都復制到結(jié)果。
函數(shù)arraycopy(array1, 0, result, 0, aLen)簡單地告訴程序從索引0開始將array1復制到從索引0復制到aLen的結(jié)果。
同樣,arraycopy(array2, 0, result, aLen, bLen)告訴程序從索引0開始將array2復制到結(jié)果,從索引aLen復制到bLen。
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,而是手動復制數(shù)組array1和array2的每個元素到result。
我們存儲result所需的總數(shù)length,即array1.length + array2. length。然后,我們創(chuàng)建一個新的長度數(shù)組結(jié)果。
現(xiàn)在,我們使用for-each循環(huán)遍歷array1的每個元素并將其存儲在結(jié)果中。 分配后,我們將位置pos增加1,pos ++。
同樣,我們對array2執(zhí)行相同的操作,并從array1之后的位置開始存儲result中的每個元素。