FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Maîtriser ArrayList en Java : Guide complet avec exemples

L'ArrayList en Java est une implémentation redimensionnable et polyvalente de l'interface List. Elle offre les fonctionnalités essentielles des tableaux dynamiques : accès par index, ajout, suppression, mise à jour et itération. Optimisée pour un usage général, elle est idéale pour la plupart des applications.

D'autres implémentations de List existent pour des cas spécifiques :

  • LinkedList : insertions et suppressions rapides aux positions intermédiaires.
  • Vector : similaire à ArrayList mais thread-safe, pour les applications multithreadées.
  • Stack : simule une pile LIFO (Last In, First Out), étend Vector et est synchronisé.
Maîtriser ArrayList en Java : Guide complet avec exemples

Ces variantes sont hors scope ici. Ce guide se concentre sur la création et l'utilisation basique d'une ArrayList.

Créer une ArrayList

La création est simple. Utilisez le constructeur par défaut pour une liste vide :

import java.util.ArrayList;
import java.util.Arrays;

ArrayList<String> alist = new ArrayList<>();

Si la taille approximative est connue, spécifiez la capacité initiale pour optimiser les performances (non limitante) :

ArrayList<String> alist = new ArrayList<>(20);
Maîtriser ArrayList en Java : Guide complet avec exemples

Remplir une ArrayList

Ajouter des éléments à la fin

Utilisez add() pour ajouter un élément :

ArrayList<String> alist = new ArrayList<>();
alist.add("pomme");
alist.add("banane");
alist.add("cantaloup");
alist.add("orange");
System.out.println(alist); // [pomme, banane, cantaloup, orange]

System.out.println("Nombre d'éléments : " + alist.size()); // 4
Maîtriser ArrayList en Java : Guide complet avec exemples

Ajouter à un index spécifique

Spécifiez l'index en premier paramètre :

alist.add(3, "raisin");
System.out.println(alist); // [pomme, banane, cantaloup, raisin, orange]

Ajouter plusieurs éléments

Utilisez addAll() avec une collection :

List<String> items = Arrays.asList("poire", "cerise");
alist.addAll(items);
System.out.println(alist); // [pomme, banane, cantaloup, raisin, orange, poire, cerise]

Vous pouvez aussi spécifier un index de départ.

Accéder aux éléments

Accès par index

Utilisez get() :

String element = alist.get(2);
System.out.println("Élément à l'index 2 : " + element); // cantaloup

Rechercher un élément

indexOf() retourne l'index ou -1 si absent :

System.out.println(alist);
int index = alist.indexOf("orange");
if (index < 0) {
    System.out.println("Élément 'orange' introuvable");
} else {
    System.out.println("Élément 'orange' trouvé à l'index " + index); // 4
}

index = alist.indexOf("raisin");
if (index < 0) {
    System.out.println("Élément 'raisin' introuvable");
}

Itérer sur une ArrayList

Plusieurs méthodes : boucle for-each (Java 5+), itérateur.

for (String fruit : alist) {
    System.out.println("Fruit : " + fruit);
}

Pour supprimer pendant l'itération, utilisez un Iterator :

ArrayList<String> blist = new ArrayList<>(alist);
Iterator<String> iter = blist.iterator();
while (iter.hasNext()) {
    String fruit = iter.next();
    if (fruit.startsWith("c")) {
        iter.remove();
    } else {
        System.out.println("Garder : " + fruit);
    }
}

Remplacer des éléments

Utilisez set() :

alist.set(5, "ananas");
System.out.println(alist); // [pomme, banane, cantaloup, raisin, orange, ananas, cerise]

Supprimer des éléments

Par index :

String fruit = alist.remove(2);
System.out.println("Supprimé à l'index 2 : " + fruit); // cantaloup

Par objet (première occurrence) :

fruit = "raisin";
System.out.println("Supprimer " + fruit + " ? " + alist.remove(fruit)); // true

Comment utilisez-vous ArrayList dans vos projets ? Partagez vos expériences et défis dans les commentaires !

[]