Java >> Tutoriel Java >  >> Java

Fusionner deux tableaux en Java

Fusionner deux tableaux en Java | Programmes de tableau en Java – 10 | Dans le programme Java précédent, nous avons vu différentes façons de copier des tableaux en Java, qui seront également utilisés dans ce programme. Maintenant, dans cet article, nous verrons comment fusionner deux tableaux en Java.

Comment fusionner deux tableaux en Java ? La fusion de deux tableaux en Java peut également être effectuée en utilisant des méthodes prédéfinies, ou nous pouvons le faire manuellement en utilisant des boucles. Discutons-en un par un.

Exemple de fusion de deux tableaux int,
Array1 =[10, 20, 30, 40, 50]
Array2 =[9, 18, 27, 36, 45]
Ensuite, le résultat doit être,
Tableau fusionné =[10, 20, 30, 40, 50, 9, 18, 27, 36, 45]

Exemple de fusion de deux tableaux String,
Array1 =[Java, Python, C++]
Array2 =[HTML, CSS, JavaScript]
Ensuite, le résultat doit être,
Merged Array =[Java, Python, C++, HTML, CSS, JavaScript]

Fusionner deux tableaux en Java à l'aide de boucles

Étapes pour combiner deux tableaux en Java,

a) Prenez deux tableaux qui seront fusionnés, supposez src1 et src2.
b) Déclarez un nouveau tableau avec la taille des deux tableaux (src1.length + src2.length ).
c) Copiez le premier tableau (src1) vers un nouveau tableau de 0 à src1.length-1
d) Copiez le deuxième tableau (src2) vers un nouveau tableau de src1.length vers (src1.length + src2.length).

Maintenant, démontrons-le à travers un exemple. Fusionner deux tableaux sans utiliser de méthode prédéfinie.

Programme pour fusionner deux tableaux en Java en utilisant des boucles

import java.util.Arrays;

public class CopyArray {

   public static void main(String[] args) {
      
      // array which should be merged
      int src1[] = {10, 20, 30, 40, 50};
      int src2[] = {9, 18, 27, 36, 45};
      
      // create new array 
      int newArray[] = new int[src1.length + src2.length];
      
      // Copy first to new array from 0 to src1.length
      for(int i=0; i<src1.length; i++) {
         newArray[i] = src1[i];
      }
      
      // copy second array to new array
      for(int i=0, j=src1.length; j<(src1.length + src2.length); 
                                                      j++, i++) {
         newArray[j] = src2[i];
      }
      
      // display all array
      System.out.println("Array1 = " + Arrays.toString(src1));
      System.out.println("Array2 = " + Arrays.toString(src2));
      System.out.println("Merged Array = " 
                             + Arrays.toString(newArray));
   }
}

Sortie :-

Tableau1 =[10, 20, 30, 40, 50]
Tableau2 =[9, 18, 27, 36, 45]
Tableau fusionné =[10, 20, 30, 40, 50, 9, 18, 27, 36, 45]

Dans ce programme, pour afficher le tableau, nous avons utilisé la méthode toString() de la classe java.util.Arrays donnée pour convertir le tableau en type String.

Fusionner deux tableaux à l'aide de la méthode System.arraycopy()

Au lieu de boucles, nous pouvons également utiliser la méthode prédéfinie System.arraycopy() . La méthode System.arraycopy() en Java est donnée pour copier un tableau dans un autre tableau. Il copie un tableau du tableau source spécifié, en commençant à la position spécifiée, vers la position spécifiée du tableau de destination.

Syntaxe de la méthode arraycopy() dans la classe java.lang.System :- public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

Paramètres de cette méthode :-

  • src :- Le tableau source.
  • srcPos :- Position de départ dans le tableau source.
  • dest : le tableau de destination.
  • destPos : position de départ dans le tableau de destination.
  • longueur : le nombre d'éléments du tableau à copier.

Étant donné que la classe java.lang.System est importée par défaut dans toutes les classes Java, il n'est donc pas nécessaire d'utiliser la méthode arraycopy() pour les importer explicitement.

Programme pour fusionner deux tableaux en utilisant la méthode System.arraycopy()

import java.util.Arrays;

public class CopyArray {

   public static void main(String[] args) {
      
      // array which should be merged
      int src1[] = {10, 20, 30, 40, 50};
      int src2[] = {9, 18, 27, 36, 45};
      
      // create new array 
      int newArray[] = new int[src1.length + src2.length];
      
      // Copy first to new array from 0 to src1.length
      System.arraycopy(src1, 0, newArray, 0, src1.length);
      
      // copy second array to new array
      System.arraycopy(src2, 0, newArray, src1.length, src2.length);
      
      // display all array
      System.out.println("Array1 = " + Arrays.toString(src1));
      System.out.println("Array2 = " + Arrays.toString(src2));
      System.out.println("Merged Array = " 
                             + Arrays.toString(newArray));
   }
}

Sortie :-

Tableau1 =[10, 20, 30, 40, 50]
Tableau2 =[9, 18, 27, 36, 45]
Tableau fusionné =[10, 20, 30, 40, 50, 9, 18, 27, 36, 45]

Comment fusionner deux tableaux de chaînes en Java

Dans les exemples précédents, nous fusionnions le tableau int. Voyons maintenant ces programmes en fusionnant deux tableaux String.

import java.util.Arrays;

public class CopyArray {

   public static void main(String[] args) {
      
      // array which should be merged
      String src1[] = {"Java", "Python", "C++"};
      String src2[] = {"HTML", "CSS", "JavaScript"};
      
      // create new array 
      String newArray[] = new String[src1.length + src2.length];
      
      // Copy first to new array from 0 to src1.length
      System.arraycopy(src1, 0, newArray, 0, src1.length);
      
      // copy second array to new array
      System.arraycopy(src2, 0, newArray, src1.length, src2.length);
      
      // display all array
      System.out.println("Array1 = " + Arrays.toString(src1));
      System.out.println("Array2 = " + Arrays.toString(src2));
      System.out.println("Merged Array = " 
                             + Arrays.toString(newArray));
   }
}

Sortie :-

Array1 =[Java, Python, C++]
Array2 =[HTML, CSS, JavaScript]
Array fusionné =[Java, Python, C++, HTML, CSS, JavaScript]


Balise Java