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 {Sortie
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]);
}
}
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:
- Le tableau source (t1 et t2).
- à partir de quelle position du tableau source vous voulez commencer(dans notre cas 0).
- Le tableau destination (t12).
- à partir de quelle position du tableau destination vous voulez commencer.
- 0 pour t1.
- t1.lenght pour t2.
- Le nombre des éléments que vous voulez copier (pas la position d’arrêt).
public class ConcatTableaux {Sortie
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]);
}
}
aRéférences
b
c
d
e
f
Oracle documentation: La classe System
TutorialsPoint: Java.lang.System.arraycopy() Method