English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在这个程序中,您将学习使用arraycopy和不使用arraycopy在Java中连接两个数组。
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)); } }
Wenn Sie das Programm ausführen, lautet die Ausgabe:
[1, 2, 3, 4, 5, 6]
在上面的程序中,我们有两个整数数组array1und array2.
为了合并(连接)两个数组,我们将其长度分别存储在aLen和bLen中。然后,我们创建一个长度为aLen + bLen的新整数数组结果。
现在,为了将两者结合在一起,我们使用arraycopy()函数将两个数组中的每个元素都复制到结果。
函数arraycopy(array1, 0, result, 0, aLen)简单地告诉程序从索引0开始将array1复制到从索引0复制到aLen的结果。
同样,arraycopy(array2, 0, result, aLen, bLen)告诉程序从索引0开始将array2复制到结果,从索引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)); } }
Wenn Sie das Programm ausführen, lautet die Ausgabe:
[1, 2, 3, 4, 5, 6]
Im obigen Programm verwenden wir arraycopy nicht, sondern kopieren wir den Array array manuell1und array2Jedes Element in result zu speichern.
Wir speichern die erforderliche Anzahl der Länge für result, d.h. array1.length + array2.length. Anschließend erstellen wir ein neues Array der Länge Ergebnis.
Jetzt verwenden wir for-each-Schleife durch array1Jedes Element und speichern Sie es im Ergebnis. Nach der Zuweisung erhöhen wir die Position pos1, pos ++.
Gleichzeitig führen wir die gleiche Operation durch für array2Führen Sie die gleiche Operation aus und von array1Ab dem nächsten Ort beginnen, um jedes Element von result zu speichern.