Java - Concaténer deux tableau avec System.arraycopy

Dans ce tutoriel, nous allons apprendre comment fusionner deux tableau. Les deux exemples suivants fournissent deux moyens différents pour la concaténation: une méthode académique pour apprendre et la deuxième avec la méthode de la classe System.arraycopy().

1) Méthode classique: parcourir les deux tableaux

public class ConcatTableaux {

public static void main(String[] args) {
String[] t1 = {"1","2","3"};
String[] t2 = {"4","5","6"};
String[] t12 = new String[t1.length+t2.length];

/*Concaténation*/
for(int i = 0 ; i < t1.length; i++)
t12[i]=t1[i];
for(int i = 0 ; i < t2.length; i++)
//on continue le copiage dans t12 à partir de l'indice
//dont on a arrêter qui est la longueur de t1
t12[i+t1.length]=t2[i];

for(int i = 0 ; i < t12.length; i++)
System.out.println(t12[i]);
}
}
Sortie

1
2
3
4
5
6

2) Avec la méthode System.arraycopy()

Cette méthode est efficace, vous pouvez l'utiliser pour copier les éléments d'un tableau source vers le tableau destination. Elle accepte cinq arguments:
  1. Le tableau source (t1 et t2).
  2. à partir de quelle position du tableau source vous voulez commencer(dans notre cas 0).
  3. Le tableau destination (t12).
  4. à partir de quelle position du tableau destination vous voulez commencer.
    1. 0 pour t1.
    2. t1.lenght pour t2.
  5. Le nombre des éléments que vous voulez copier (pas la position d’arrêt).
public class ConcatTableaux {

public static void main(String[] args) {
char[] t1 = {'a','b','c'};
char[] t2 = {'d','e','f'};
char[] t12 = new char[t1.length+t2.length];

//copie du premier tableau
System.arraycopy(t1, 0, t12, 0, t1.length);
//copie du deuxième tableau tableau
System.arraycopy(t2, 0, t12, t1.length, t2.length);

for(int i = 0 ; i < t12.length; i++)
System.out.println(t12[i]);
}
}
Sortie

a
b
c
d
e
f
Références
Oracle documentation: La classe System
TutorialsPoint: Java.lang.System.arraycopy() Method