1. Ajouter un élément au milieu (ou au début) d'une liste

Si nous voulons insérer un élément au milieu de la liste, voici ce qui se passe à l'intérieur de la liste.

Supposons que nous ayons une liste de 11 éléments :

Ajouter un élément au milieu (ou au début) d'une liste

On veut insérer le nombre 10 000 dans la liste à l'indice 5. Pour cela, il suffit d'exécuter :

list.add(5, 10000);

listest une ArrayListvariable. La add(int index, type value)méthode ajoute la valeur 10000 à la position 5 dans la liste. Voici ce qui se passe dans la add()méthode :

Étape 1 : Tous les éléments du tableau, à partir de la 5ème position, seront décalés (copiés) d'un élément vers la fin du tableau :

Ajouter un élément au milieu (ou au début) d'une liste 1

Notez que les éléments des 5e et 6e cellules du tableau sont désormais les mêmes.

Étape 2 : Écrivez la valeur 10 000 dans la 5ème cellule :

Ajouter un élément au milieu (ou au début) d'une liste 2

Maintenant, la liste contient tous les éléments du tableau et la cinquième cellule contient le nombre 10 000. Juste ce que nous voulions.



2. Supprimer un élément d'une liste

Supprimer un élément d'une liste est similaire à son insertion, mais le processus est inversé.

Supprimons le 3ème élément d'une liste. Pour ce faire, nous devons exécuter :

list.remove(3);

Voici ce qui se passe dans la méthode remove() :

Etape 1 : Les éléments du tableau, à partir de la 4ème position, seront décalés (copiés) d'1 élément vers le début du tableau :

Supprimer un élément d'une liste

Étape 2 : La valeur de la sizevariable sera diminuée de 1.

Supprimer un élément d'une liste 2

Veuillez noter que certaines valeurs sont colorées en gris à la fin du tableau. Techniquement, ce sont des ordures. Ils doivent être supprimés afin de ne pas interférer avec la collecte des ordures .

Étape 3 : nettoyer les ordures

Supprimer un élément d'une liste 3



3. Exemples pratiques de travail avec une liste en Java

Écrivons quelques exemples de travail avec des listes :

Nous énumérerons tous les nombres pairs compris entre 1 et 20 :

Code Remarques
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);
Créer un objet de liste

Boucler sur tous les indices 1pour 20
Si l'indice est divisible par 2sans reste,
l'ajouter à la liste

Affichons maintenant tous les éléments de la liste à l'écran :

Code Remarques
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   System.out.println(list.get(i));
Créer un objet liste
Boucler sur tous les indices 1pour 20

Si le nombre est divisible par 2sans reste,
l'ajouter à la liste

Boucler de zéro à la taille de la liste
Afficher chaque élément à l'écran

Suppression d'éléments :

Supprimons maintenant tous les éléments divisibles par 4. Notez qu'après avoir supprimé un élément de la liste, les positions des éléments restants changent immédiatement.

Code Remarques
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   if (list.get(i)%4 == 0)
   {
      list.remove(i);
      i--;
   }
Créer un objet liste

Boucler sur tous les indices 1pour 20
Si l'indice est divisible par 2sans reste,
l'ajouter à la liste

Boucler de zéro à la taille de la liste
Si un élément de la liste est divisible par 4sans reste :

a) supprimer l'élément
b) diminue le icompteur pour obtenir le même indice à la prochaine itération de la boucle

Disons que vous devez supprimer les 3 derniers éléments d'une liste.

Voici comment procéder de manière incorrecte :

Code Remarques
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

int n = list.size();
list.remove(n - 3);
list.remove(n - 2);
list.remove(n - 1);
Créer un objet liste

La liste comporte 10 éléments : 2, 4, 6, ... 20



n = 10
n - 3 = 7(il reste 9 éléments dans la liste)
n - 2 = 8(il reste 8 éléments dans la liste)
n - 1 = 9(il reste 7 éléments dans la liste)

Après avoir supprimé les 7ème et 8ème éléments, seuls 8 éléments resteront dans la liste. Cela signifie qu'il ne sera pas possible de supprimer le 9e élément — une erreur se produira dans le programme.

Voici la bonne façon de supprimer les éléments :

Option 1 Option 2
int n = list.size();
list.remove(n - 3);
list.remove(n - 3);
list.remove(n - 3);
int n = list.size();
list.remove(n - 1);
list.remove(n - 2);
list.remove(n - 3);

Les éléments doivent être supprimés soit de la fin, soit d'un autre emplacement cohérent, car les éléments sont décalés d'un élément après chaque opération de suppression.