Ajouter un élément au tableau en Java
Dans cet article, nous verrons comment ajouter un élément au tableau en Java. Ajouter un élément au tableau signifie insérer un élément à la fin du tableau. Voir également :- Comment insérer un élément dans un tableau à une position spécifique en Java.
Nous pouvons résoudre ce problème de deux manières,
a) En créant un nouveau tableau.
b) En prenant l'aide de ArrayList.
Ajouter un élément au tableau en Java en créant un nouveau tableau
Dans cette approche,
a) Créez un nouveau tableau de taille n+1, où n est la taille du tableau d'origine où un élément doit être ajouté.
b) Copiez tous les éléments du tableau d'origine dans le nouveau tableau.
c) Insérez l'élément à la fin.
d) Renvoyez le nouveau tableau, c'est-à-dire que maintenant la variable tableau qui pointait vers le tableau d'origine pointera vers le nouveau tableau.
Démontrons-le à travers un exemple. Programme Java pour ajouter un élément à un tableau en Java en créant un nouveau tableau ,
import java.util.Arrays; public class ArrayTest { // method to add element to array and return new array public static int[] addElement(int[] arr, int element) { // create new array of size n+1 int temp[] = new int[arr.length+1]; // copy all existing element for (int i = 0; i < arr.length; i++) { temp[i] = arr[i]; } // insert last element temp[arr.length] = element; // return new array return temp; } public static void main(String[] args) { // original array int arr[] = { 30, 50, 20, 40, 10}; // new element to be added int element = 99; // display old array System.out.println("Original array: " + Arrays.toString(arr)); // add element arr = addElement(arr, element); // display new array System.out.println("New array: " + Arrays.toString(arr)); } }
Sortie :-
Tableau d'origine :[30, 50, 20, 40, 10]
Nouveau tableau :[30, 50, 20, 40, 10, 99]
Dans cette méthode, pour copier le tableau d'origine dans un nouveau tableau, nous avons utilisé la boucle for normale, mais nous pouvons également utiliser la méthode System.arraycopy() qui est une méthode native et utilise une copie directe de la mémoire en dehors de Java land. La méthode native est implémentée dans un code dépendant de la plate-forme, généralement écrit dans un autre langage de programmation tel que C, C++, FORTRAN ou un langage d'assemblage. arraycopy() est probablement le moyen le plus rapide de copier un tableau et offre de meilleures performances par rapport à la copie de tableau normale à l'aide de boucles. En savoir plus :- Méthode System.arraycopy() en Java
La même méthode en utilisant la méthode System.arraycopy() peut être écrite comme,
// method to add element to array and return new array public static int[] addElement(int[] arr, int element) { // create new array of size n+1 int temp[] = new int[arr.length+1]; // copy all existing element System.arraycopy(arr, 0, temp, 0, arr.length); // insert last element temp[arr.length] = element; // return new array return temp; }
Avec l'aide de ArrayList
Dans cette méthode, nous utiliserons ArrayList comme assistant. Ici, les opérations seront effectuées comme,
a) Créez une nouvelle ArrayList avec le tableau d'origine, à l'aide de la méthode Array.asList().
b) Ajoutez un nouvel élément à la liste à l'aide de la méthode add().
c) Convertissez la liste en un tableau en utilisant la méthode toArray().
Remarque :- Dans cette approche, le tableau doit être de type wrapper (Integer, Double, Float, etc.), et non de types primitifs.
Démontrons-le à travers un exemple,
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ArrayTest { // method to add element to array and return new array public static Integer[] addElement(Integer[] arr, int element) { // create ArrayList with original array List<Integer> list = new ArrayList<Integer>(Arrays.asList(arr)); // add new element to arrayList list.add(element); // return array (after converting list to array) return list.toArray(arr); } public static void main(String[] args) { // original array Integer arr[] = { 30, 50, 20, 40, 10}; // new element to be added int element = 99; // display old array System.out.println("Original array: " + Arrays.toString(arr)); // add element arr = addElement(arr, element); // display new array System.out.println("New array: " + Arrays.toString(arr)); } }
Sortie :-
Tableau d'origine :[30, 50, 20, 40, 10]
Nouveau tableau :[30, 50, 20, 40, 10, 99]
Dans ces exemples, pour afficher le tableau, nous avons utilisé la méthode Arrays.toString(). La méthode Arrays.toString() renvoie une représentation sous forme de chaîne du contenu du tableau spécifié. La représentation sous forme de chaîne consiste en une liste d'éléments du tableau, entre crochets "[]
” et les éléments adjacents sont séparés par les caractères “, ” (une virgule suivie d'un espace). Il renvoie "null" si le tableau passé est nul. En savoir plus :- Méthode Arrays.toString() en Java