Java >> Tutoriel Java >  >> Java

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


Balise Java