Académique Documents
Professionnel Documents
Culture Documents
ArrayList implémente toutes les méthodes de List, plus que ça, la classe a ses
propres méthodes comme la manipulation de la taille du tableau utilisé pour stocker
la liste. Cette classe est équivalente à Vector.
Arraylist utilise un tableau qui stocke les données, ce tableau a une capacité qui
s'adapte automatiquement à chaque fois qu'un élément est inséré. Il existe une
méthode ensureCapacity qui augmente la capacité de ArrayList avant d'ajouter un
grand nombre éléments pour assurer la taille.
L’accès à la liste se fait simultanément par plusieurs threads. Cela peut causer des
problèmes quand il s'agit d'une modification, insertion ,suppression parce qu'un
autre thread va accéder et mit à jour de la taille de la liste est en cours. La solution
est la synchronisation des processus en utilisant la méthode
Collections.synchronizedList.
Pour parcourir la liste avec la classe iterator ou listIterator, mais si la liste a été
modifiée : suppression, insertion...après la création de iterator, ce dernier va
lancer une exception ConcurrentModificationException. La solution
est de créer une exclusion mutuelle dont le but est d’empêcher les autres
threads d y accéder après la création de iterator et pendant la lecture.
Les constructeurs
- ArrayList(): crée une liste vide avec une taille initiale de 10.
- ArrayList(Collection<? extends E> c): crée une liste à partir d'une collection de
données et renvoie une exception NullPointerException si la collection est
nulle.
- ArrayList(int capacite): crée une liste en définissant la taille initiale et renvoie
une exception IllegalArgumentException si la taille est négative.
Les méthodes
1) add(Object o): ajoute un élément à la fin.
list.add("Bonjour");
Insertion de la liste l1 dans la position 3. Les autres éléments qui ont un indice
supèrieur à 3 seront décalés.
Le tableau t contient tous les objets de list. Cette méthode est utile lorsque on a
une fonction qui n'accepte que les tableaux par exemple.
1) Boucle for
2) Iterator + While
Exemple
import java.util.ArrayList;
//Ajout
str.add("o1");
str.add("o2");
str.add("o3");
str.add("o4");
str.clear();
System.out.println("liste est vide ? "+str.isEmpty());
}
}