logo

Come unire due array in Java

Unire due array in Java è simile a concatenare o combinare due array in un singolo oggetto array. Dobbiamo unire due array in modo tale che gli elementi dell'array mantengano il loro ordine originale nell'array appena unito. Gli elementi del primo array precedono gli elementi del secondo array nell'array appena unito. Per esempio:

 int[] arr1={1, 2, 3, 4, 5, 6}; //first array int[] arr2={7, 8, 9, 0}; //second array int[] arr3={1, 2, 3, 4, 5, 6, 7, 8, 9, 0} //resultant array 

Esistono i seguenti modi per unire due array:

  • Giava arraycopy() metodo
  • Senza usare arraycopy() metodo
  • Giava Collezioni
  • Giava Flusso API

Metodo Java arraycopy()

Giava arraycopy() è il metodo di Sistema classe a cui appartiene java.lang pacchetto. Copia un array dall'array di origine specificato nella posizione specificata dell'array di destinazione. Il numero di elementi copiati è uguale all'argomento lunghezza.

Sintassi:

np standard
 public static void arraycopy(Object source, int source_position, Object destination, int destination_position, int length) 

Parametri

    fonte: È un array di origine.posizione_origine: punto iniziale nell'array di origine.destinazione: È un array di destinazione.posizione_destinazione: Posizione iniziale nell'array di destinazione.lunghezza: il numero di elementi dell'array da copiare

Lancia NullPointerException se l'array di origine o di destinazione è nullo. Lancia anche ArrayIndexOutOfBoundsException se :

    posizione_origineO posizione_destinazione o la lunghezza è negativa.posizione_origine+lunghezzaè maggiore della lunghezza dell'array di origine o posizione_destinazione+lunghezza è maggiore della lunghezza dell'array di destinazione.

Esempio del metodo arraycopy()

Nell'esempio seguente, abbiamo creato due array di numeri interi primoArray E secondoArray . Per unire due array, troviamo la sua lunghezza e la memorizziamo rispettivamente nelle variabili fal e sal. Successivamente, creiamo un nuovo array di numeri interi risultato che memorizza la somma della lunghezza di entrambi gli array. Ora copia ciascun elemento di entrambi gli array nell'array dei risultati utilizzando arraycopy() funzione.

 import java.util.Arrays; public class MergeArrayExample1 { public static void main(String[] args) { int[] firstArray = {23,45,12,78,4,90,1}; //source array int[] secondArray = {77,11,45,88,32,56,3}; //destination array int fal = firstArray.length; //determines length of firstArray int sal = secondArray.length; //determines length of secondArray int[] result = new int[fal + sal]; //resultant array of size first array and second array System.arraycopy(firstArray, 0, result, 0, fal); System.arraycopy(secondArray, 0, result, fal, sal); System.out.println(Arrays.toString(result)); //prints the resultant array } } 

Produzione:

stringa intera
 [23, 45, 12, 78, 4, 90, 1, 77, 11, 45, 88, 32, 56, 3] 

Vediamo un altro esempio in cui abbiamo specificato soure_array, destinazione, dest_position, posizione di origine e lunghezza. Possiamo unire l'array in base alle posizioni e alla lunghezza specificate.

Esempio

 import java.lang.*; public class MergeArrayExample2 { public static void main(String[] args) { int firstArray[] = { 11,22,33,44,55,98,76,54,60}; int secondArray[] = {66,77,88,99,22,67,21,90,80,70}; int source_arr[], sourcePos, dest_arr[], destPos, len; source_arr = firstArray; dest_arr = secondArray; sourcePos = 2; destPos = 4; len = 3; // Print elements of source System.out.print(&apos;source_array : &apos;); for (int i = 0; i <firstarray.length; i++) system.out.print(firstarray[i] + ' '); system.out.println(''); system.out.println('sourcepos : sourcepos); print elements of destination system.out.print('dest_array for (int i="0;" < secondarray.length; system.out.print(secondarray[i] system.out.println('destpos destpos); system.out.println('len len); invoking arraycopy() method system.arraycopy(source_arr, sourcepos, dest_arr,destpos, after system.out.print('resultant array } pre> <p> <strong>Output:</strong> </p> <pre> source_array: 11 22 33 44 55 98 76 54 60 sourcePos: 2 dest_array: 66 77 88 99 22 67 21 90 80 70 destPos: 4 len: 3 Resultant array: 66 77 88 99 33 44 55 90 80 70 </pre> <h2>Without using arraycopy() method</h2> <p> <strong>Example of merging two arrays</strong> </p> <p>In the following example, we have initialized two arrays firstArray and secondArray of integer type. Manually copy the each element of both arrays to mergedArray and convert that array into String by using toString() method of Array class.</p> <pre> public class MergeArrayExample3 { public static void main(String[] args) { int[] firstArray = {56,78,90,32,67,12}; //initialized array int[] secondArray = {11,14,9,5,2,23,15}; int length = firstArray.length + secondArray.length; //add the length of firstArray into secondArray int[] mergedArray = new int[length]; //resultant array int pos = 0; for (int element : firstArray) //copying elements of secondArray using for-each loop { mergedArray[pos] = element; pos++; //increases position by 1 } for (int element : secondArray) //copying elements of firstArray using for-each loop { mergedArray[pos] = element; pos++; } System.out.println(Arrays.toString(mergedArray)); //prints the resultant array } } </pre> <p> <strong>Output:</strong> </p> <pre> [56, 78, 90, 32, 67, 12, 11, 14, 9, 5, 2, 23, 15] </pre> <h2>Using Collections</h2> <p> <strong>Example of merging two arrays in Java</strong> </p> <p>In the following example, we have initialized two arrays str1 and str2 of String type. After that we have created a list view of str1 by using the Arrays.asList() method. Now we have created the list view of str2 and added all the elements of str2 into the list. Again perform conversion from list to array and store the resultant array into str3 variable.</p> <pre> import java.util.*; public class MergeArrayExample4 { public static void main(String args[]) { String str1[] = { &apos;A&apos;, &apos;E&apos;, &apos;I&apos; }; //source array String str2[] = { &apos;O&apos;, &apos;U&apos; }; //destination array List list = new ArrayList(Arrays.asList(str1)); //returns a list view of an array //returns a list view of str2 and adds all elements of str2 into list list.addAll(Arrays.asList(str2)); Object[] str3 = list.toArray(); //converting list to array System.out.println(Arrays.toString(str3)); //prints the resultant array } } </pre> <p> <strong>Output:</strong> </p> <pre> [A, E, I, O, U] </pre> <h2>Java Stream API</h2> <p> <strong>Stream.of() method</strong> </p> <p>The <strong>Stream.of()</strong> method of Stream interface returns a sequential ordered stream whose elements are the values.</p> <p> <strong>Syntax</strong> </p> <pre> static Stream of(T....values) </pre> <p>Where M <strong>T</strong> is the type of stream elements. The method accepts <strong>values</strong> (elements of the new stream).</p> <p> <strong>flatMap() method</strong> </p> <p>The <strong>flatMap()</strong> method is the method of Stream interface. It returns a stream consisting of the result.</p> <p> <strong>Syntax</strong> </p> <pre> Stream flatMap(Function<? Super T, ? extends Stream> mapper) </pre> <p>Where <strong>R</strong> is the element type of new stream. The method accepts a <strong>mapper</strong> (a function to apply to each element which produces a stream of new values) as a parameter.</p> <p> <strong>toArray() method</strong> </p> <p>The <strong>toArray()</strong> method of Stream interface returns an array containing the elements of the stream.</p> <p> <strong>Syntax</strong> </p> <pre> Object[] toArray() </pre> <p> <strong>Example of merging two arrays using Stream API</strong> </p> <pre> import java.util.stream.Stream; import java.util.Arrays; import java.io.*; public class MergeArrayExample5 { // function to merge two arrays public static Object[] mergeArray(T[] arr1, T[] arr2) { return Stream.of(arr1, arr2).flatMap(Stream::of).toArray(); } public static void main (String[] args) { Integer[] firstArray = new Integer[]{13,12,11,6,9,3}; //source array Integer[] secondArray = new Integer[]{78,34,56,67,2,11,7}; //destination array Object[] mergedArray = mergeArray(firstArray,secondArray); //merged array System.out.println(&apos;Merged array: &apos;+ Arrays.toString(mergedArray)); } } </pre> <p> <strong>Output:</strong> </p> <pre> Merged array: [13, 12, 11, 6, 9, 3, 78, 34, 56, 67, 2, 11, 7] </pre> <hr></firstarray.length;>

Senza utilizzare il metodo arraycopy()

Esempio di unione di due array

Nell'esempio seguente abbiamo inizializzato due array firstArray e secondArray di tipo intero. Copia manualmente ciascun elemento di entrambi gli array in mergedArray e converti l'array in String utilizzando il metodo toString() della classe Array.

 public class MergeArrayExample3 { public static void main(String[] args) { int[] firstArray = {56,78,90,32,67,12}; //initialized array int[] secondArray = {11,14,9,5,2,23,15}; int length = firstArray.length + secondArray.length; //add the length of firstArray into secondArray int[] mergedArray = new int[length]; //resultant array int pos = 0; for (int element : firstArray) //copying elements of secondArray using for-each loop { mergedArray[pos] = element; pos++; //increases position by 1 } for (int element : secondArray) //copying elements of firstArray using for-each loop { mergedArray[pos] = element; pos++; } System.out.println(Arrays.toString(mergedArray)); //prints the resultant array } } 

Produzione:

 [56, 78, 90, 32, 67, 12, 11, 14, 9, 5, 2, 23, 15] 

Utilizzo delle raccolte

Esempio di unione di due array in Java

Nell'esempio seguente abbiamo inizializzato due array str1 e str2 di tipo String. Successivamente abbiamo creato una visualizzazione elenco di str1 utilizzando il metodo Arrays.asList(). Ora abbiamo creato la visualizzazione elenco di str2 e aggiunto tutti gli elementi di str2 all'elenco. Esegui nuovamente la conversione dall'elenco all'array e memorizza l'array risultante nella variabile str3.

operatori nella programmazione Python
 import java.util.*; public class MergeArrayExample4 { public static void main(String args[]) { String str1[] = { &apos;A&apos;, &apos;E&apos;, &apos;I&apos; }; //source array String str2[] = { &apos;O&apos;, &apos;U&apos; }; //destination array List list = new ArrayList(Arrays.asList(str1)); //returns a list view of an array //returns a list view of str2 and adds all elements of str2 into list list.addAll(Arrays.asList(str2)); Object[] str3 = list.toArray(); //converting list to array System.out.println(Arrays.toString(str3)); //prints the resultant array } } 

Produzione:

 [A, E, I, O, U] 

API del flusso Java

Metodo Stream.of()

IL Flusso.di() Il metodo dell'interfaccia Stream restituisce un flusso ordinato sequenziale i cui elementi sono i valori.

Sintassi

 static Stream of(T....values) 

Dove M T è il tipo di elementi del flusso. Il metodo accetta valori (elementi del nuovo flusso).

quanto pesa kat timpf?

metodo flatMap()

IL mappapiatta() metodo è il metodo dell'interfaccia Stream. Restituisce un flusso costituito dal risultato.

Sintassi

 Stream flatMap(Function<? Super T, ? extends Stream> mapper) 

Dove R è il tipo di elemento del nuovo flusso. Il metodo accetta a mappatore (una funzione da applicare a ciascun elemento che produce un flusso di nuovi valori) come parametro.

metodo toArray()

IL toArray() Il metodo dell'interfaccia Stream restituisce un array contenente gli elementi dello stream.

Sintassi

 Object[] toArray() 

Esempio di unione di due array utilizzando l'API Stream

usa quante città
 import java.util.stream.Stream; import java.util.Arrays; import java.io.*; public class MergeArrayExample5 { // function to merge two arrays public static Object[] mergeArray(T[] arr1, T[] arr2) { return Stream.of(arr1, arr2).flatMap(Stream::of).toArray(); } public static void main (String[] args) { Integer[] firstArray = new Integer[]{13,12,11,6,9,3}; //source array Integer[] secondArray = new Integer[]{78,34,56,67,2,11,7}; //destination array Object[] mergedArray = mergeArray(firstArray,secondArray); //merged array System.out.println(&apos;Merged array: &apos;+ Arrays.toString(mergedArray)); } } 

Produzione:

 Merged array: [13, 12, 11, 6, 9, 3, 78, 34, 56, 67, 2, 11, 7]