Java >> Tutoriel Java >  >> Java

Comment insérer un élément à une position spécifique dans un tableau en Java

Comment insérer un élément à une position spécifique dans un tableau en Java ? Ici, nous verrons des exemples pour insérer un élément dans le tableau à index. Pour insérer un élément à la fin voir :- Ajouter un élément dans le tableau Java.

Nous pouvons insérer un élément à une position spécifique de deux manières différentes,
a) en utilisant un nouveau tableau
b) à l'aide de ArrayList.

Exemple :-
Tableau ={10, 20, 30, 40, 50} ;
Élément à insérer =99 ;
Position =3 ;
Résultat final ={10, 20, 30, 99, 40, 50} ;

Insérer un élément dans Array en utilisant le nouveau Array en Java

Dans cette approche,
a) Prenez une position et un nouvel élément de tableau.
b) Créez un nouveau tableau avec la taille de n+1, où n est la taille du tableau d'origine.
c) Copiez l'élément du tableau d'origine dans le nouveau tableau jusqu'à l'index de position 1.
d) Insérez un élément à l'index de position
e) Copiez les éléments restants du tableau d'origine dans le nouveau tableau
f) Renvoie le 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, int position) {
      
      // create new array
      int temp[] = new int[arr.length+1];
      
      // add elements to new array
      for (int i=0, j=0; i < temp.length; i++) {
         if(i == position) {
            temp[i] = element;
         } else {
            temp[i] = arr[j++];
         }
      }
            
      // return array
      return temp;
   }

   public static void main(String[] args) {
      // original array
      int arr[] = {10, 20, 30, 40, 50};
      
      // new element to be added
      int element = 99;
      
      // position to be inserted
      // Array index start from 0, not 1
      int position = 3;
      
      // display old array
      System.out.println("Original array: " + Arrays.toString(arr));
      
      // add element 
      arr = addElement(arr, element, position);
      
      // display new array
      System.out.println("New array: " + Arrays.toString(arr));
   }
}

Sortie :-

Tableau d'origine :[10, 20, 30, 40, 50]
Nouveau tableau :[10, 20, 30, 99, 40, 50]

La logique pour ajouter tous les éléments du tableau d'origine et le nouvel élément à une position spécifique peut également être écrite comme,

// method to add element to array and return new array
public static int[] addElement(int[] arr, int element, int position) {

   // create new array
   int temp[] = new int[arr.length+1];

   // add elements to new array
   for (int i = 0; i < temp.length; i++) {
      if (i < position) 
         temp[i] = arr[i]; 
      else if (i == position) 
         temp[i] = element; 
      else
         temp[i] = arr[i - 1];
   }

   // return array
   return temp;
}

Avec l'aide de ArrayList

Nous pouvons également faire la même chose en utilisant ArrayList. La classe ArrayList contient une méthode intégrée add(position, element) qui peut être utilisée pour insérer un élément à la position spécifiée. Mais pour cela, nous devons effectuer les conversions requises.

Dans cette approche, le tableau doit être de type wrapper (Integer, Double, Float, etc.), et non de types primitifs. Parce que les classes de collections ne fonctionnent pas directement avec les types primitifs.

Dans cette approche, les opérations peuvent être effectuées comme suit :
a) Prenez le tableau, la position et l'élément à insérer.
b) Créez une ArrayList en utilisant le tableau d'origine.
c) Utilisez la méthode add(position, element) pour insérer un élément à la position spécifiée.
d) Convertissez la liste en tableau et renvoyez-la.

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, int position) {
      
      // create ArrayList
      List<Integer> list = 
            new ArrayList<Integer>(Arrays.asList(arr));
      
      // add element at specificed position
      list.add(position, element);

      // return array
      return list.toArray(arr);
   }

   public static void main(String[] args) {
      // original array
      Integer arr[] = {10, 20, 30, 40, 50};
      
      // new element to be added
      int element = 99;
      
      // position to be inserted
      // Assuming array start from 1, not 0
      int position = 3;
      
      // display old array
      System.out.println("Original array: " + Arrays.toString(arr));
      
      // add element 
      arr = addElement(arr, element, position);
      
      // display new array
      System.out.println("New array: " + Arrays.toString(arr));
   }
}

Sortie :-

Tableau d'origine :[10, 20, 30, 40, 50]
Nouveau tableau :[10, 20, 30, 99, 40, 50]

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