English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo programma, imparerai a connettere due array in Java sia usando arraycopy che senza usarla.
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)); } }
Quando si esegue il programma, l'output è:
[1, 2, 3, 4, 5, 6]
Nel programma sopra, abbiamo due array di interi array1 e array2.
Per combinare (unire) due array, memorizziamo le loro lunghezze rispettivamente in aLen e bLen. Poi, creiamo un nuovo array di interi di lunghezza aLen + bLen chiamato risultato.
Ora, per combinare entrambi, utilizziamo la funzione arraycopy() per copiare ogni elemento degli array in risultato.
La funzione arraycopy(array1, 0, result, 0, aLen) informa semplicemente il programma di copiare array1 dall'indice 0 all'indice result, dall'indice 0 all'indice aLen.
Allo stesso modo, arraycopy(array2, 0, result, aLen, bLen) informa il programma di copiare array2 dall'indice 0 all'indice result, dall'indice aLen all'indice 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)); } }
Quando si esegue il programma, l'output è:
[1, 2, 3, 4, 5, 6]
Nel programma sopra, non abbiamo utilizzato arraycopy, ma abbiamo copiato manualmente ogni elemento degli array array1 e array2 nel risultato.
Memorizziamo il totale di elementi necessari per result, ossia array1.length + array2.length. Poi, creiamo un nuovo array di risultato con una nuova lunghezza.
Ora, usiamo un ciclo for-each per esplorare ogni elemento di array1 e memorizzarlo nel risultato. Dopo l'allocazione, aumentiamo la posizione pos di 1, pos++.
Allo stesso modo, eseguiamo la stessa operazione su array2 e iniziamo a memorizzare ogni elemento di result dopo la posizione di array1.