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

Commentaires (0)

Connectez-vous pour commenter

Rejoignez la discussion et partagez vos connaissances avec la communauté

Chargement des commentaires...