Comment fusionner deux tableaux en Java : 5 méthodes + exemples de code

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

« Coller » des tableaux en Java : 5 méthodes éprouvées (avec code)

Bonjour, collègue ! Si tu lis ce texte, c’est que tu as rencontré une tâche qui se présente tôt ou tard à chaque développeur Java — comment fusionner deux tableaux en Java ? On pourrait penser que c’est simple : il suffit de les additionner. Mais ce n’est pas si évident. Java n’a pas d’opérateur natif pour concaténer des tableaux (comme en Python ou JavaScript). Et c’est là que les choses deviennent intéressantes.

Sur Stack Overflow, la question « How can I concatenate two arrays in Java? » a recueilli des centaines de milliers de vues. Cela signifie que même les développeurs expérimentés hésitent parfois dans leur choix. Dans ce tutoriel, je vais te montrer 5 méthodes fonctionnelles — de la copie manuelle « à l’ancienne » au Stream API moderne. Tu découvriras les avantages et les inconvénients de chaque approche et pourras choisir celle qui convient le mieux à ta tâche.

C’est parti !



Pourquoi Java n’a-t-il pas de moyen simple de fusionner des tableaux ?

Un tableau en Java est un objet de longueur fixe. Tu ne peux pas simplement « ajouter » un tableau à la fin d’un autre. Il faut créer un nouveau tableau et y copier les éléments. Mais ne t’inquiète pas — je vais te montrer comment faire cela de manière élégante et sans douleur.



Méthode 1 : Copie manuelle (pour ceux qui aiment tout contrôler)

La méthode la plus évidente et la plus claire. On crée un nouveau tableau dont la longueur est égale à la somme des longueurs des deux tableaux d’origine, et on le remplit avec une boucle.

public class ArrayConcatManual {    public static void main(String[] args) {        int[] array1 = {1, 2, 3};        int[] array2 = {4, 5, 6};

int[] result = new int[array1.length + array2.length];

// Copie du premier tableau for (int i = 0; i < array1.length; i++) { result[i] = array1[i]; }

// Copie du deuxième tableau for (int i = 0; i < array2.length; i++) { result[array1.length + i] = array2[i]; }

// Affichage du résultat for (int num : result) { System.out.print(num + " "); } // Affichage : 1 2 3 4 5 6 }}

Avantages : contrôle total, ne nécessite pas de bibliothèques externes, facile à lire.

Inconvénients : verbeux, facile de se tromper dans les indices (surtout s’il y a plus de deux tableaux).

Conseil : Utilise cette méthode si tu veux comprendre comment tout fonctionne « sous le capot », ou si tu écris du code à des fins pédagogiques.



Méthode 2 : System.arraycopy() — l’outil standard

Java dispose d’une méthode intégrée System.arraycopy(). Elle est plus rapide qu’une boucle manuelle car elle utilise du code natif (native method). C’est la méthode recommandée pour la production.

import java.util.Arrays;

public class ArrayConcatSystem { public static void main(String[] args) { String[] fruits1 = {"apple", "banana"}; String[] fruits2 = {"cherry", "date"};

String[] result = new String[fruits1.length + fruits2.length];

System.arraycopy(fruits1, 0, result, 0, fruits1.length); System.arraycopy(fruits2, 0, result, fruits1.length, fruits2.length);

System.out.println(Arrays.toString(result)); // Affichage : [apple, banana, cherry, date] }}

Comment ça fonctionne :

  • Premier argument — le tableau source.
  • Deuxième — la position de départ dans le tableau source (généralement 0).
  • Troisième — le tableau cible.
  • Quatrième — la position de départ dans le tableau cible.
  • Cinquième — le nombre d’éléments à copier.

Avantages : rapide, compact, bibliothèque standard.

Inconvénients : il faut surveiller les indices, peut lancer une ArrayIndexOutOfBoundsException.



Méthode 3 : ArrayList et collections — flexibilité et commodité

Si tu as besoin non seulement de fusionner des tableaux, mais aussi de travailler avec eux par la suite (ajouter, supprimer

Blogs

Book Recommendations