ArrayListe
La classe ArrayList permet donc de construire des tableaux de taille variable. De la même
manière qu’un tableau est un tableau d’entier, de char, de String (etc.), une ArrayList contient
des valeurs d’un type donné. On doit préciser ce type quand on déclare la variable. Pour cela,
on fait suivre le nom de la classe ArrayList par le type des éléments, entre chevrons (< et >).
Par exemple : ArrayList<String> maListe;
déclare la variable maListe comme étant une référence vers une ArrayList de Strings.
Une ArrayList est un objet, et comme les tableaux, les objets sont créés par l’exécution de
l’instruction new. Donc il suffit de comprendre que :
maListe= new ArrayList<String>(); va créer une ArrayList vide.
Enfin, notez que pour qu’une classe puisse utiliser les ArrayList, il faut écrire
import [Link];
avant la déclaration de votre classe dans le fichier java :
import [Link];
public class MaClasse {
...
}
La classe ArrayList est la version incluse dans Java des tableaux dynamiques étudiés
précédemment. Cette classe est bien entendu plus sophistiquée que la classe
TableauDynamique mais son principe reste le même : on peut dire grossièrement qu’une
instance de ArrayList contient un Object[] qui grossit quand on ajoute des éléments. Pour
utiliser les ArrayLists, il faut tenir compte du fait qu’ils sont définis dans le package [Link].
Il faut donc commencer un programme qui les utilise par la ligne : import [Link];
ou encore : import [Link].*;
La classe ArrayList possède 2 avantages sur le tableau classique :
– elle ne requiert pas, a priori, la connaissance du nombre maximal d’éléments à mémoriser
– elle permet la mémorisation d’objets de différentes classes dans un même tableau
Voici une description des principales méthodes de cette classe (comme pour les tableaux
classiques de Java, les positions des éléments commencent à 0) :
1) Constructeurs
•ArrayList() : Constructeur non paramétré, construit un tableau vide.
•ArrayList (int initialCapacity) : Constructeur paramétré, construit un tableau mais
prévu pour ne pas avoir à grossir pour stocker au moins initialCapacity éléments. Il est
important de noter que ce n’est pas du tout le même comportement que celui des
TableauDynamiques.
2) Méthodes
• boolean equals(Object o) : Renvoie vrai si et seulement si l’objet o fait référence à
une ensemble (un tableau dynamique) dont le contenu est strictement le même que le tableau
appelant (´éléments identiques au sens de equals et dans le même ordre dans le tableau).
• boolean add(Object o) : Ajoute l’objet o à la fin du tableau. Cette méthode renvoie
toujours vrai en Ajoutant un à la taille du tableau.
• void add(int index , Object o ) : ajoute l’objet o à la position index. index doit être
inférieure ou égale à size(). La fin du tableau est décalée (l’ancien élément en position i passe
en position i +1, etc.)
• boolean contains(Object o) : retourne vrai si l'objet o est présent dans la collection
• int size() : retourne le nombre d'objets dans la collection.
•Object get (int index) : renvoie l’objet de la collection situé à une certaine position (index)
• Object set (int index, Object o ) : Remplace l’élément de position index du tableau
appelant par o. Renvoie l’ancienne valeur de la case en question. Cette méthode ne peut pas
être utilisée pour ajouter des cases au tableau.
• Object remove ( int index ) : Renvoie l’objet de position index du tableau, après
l’avoir supprimé du tableau. Décale les éléments suivants la position index si nécessaire.
Diminue de un la taille du tableau.
• boolean remove ( Object o ) : supprime la première occurrence de l’élément de
valeur o ; si l’élément est présent plusieurs fois, il ne sera enlevé qu’une seule fois. La
fonction renvoie vrai, le contenu des cases est décalé, et la longueur de l’ArrayList diminue
de 1. Si l’élément n’est pas présent, la liste n’est pas modifiée.
• int indexOf(Object o) : renvoie la position de o dans la liste, et -1 s’il n’y apparaît pas.
• int lastIndexOf(Object o) : Renvoie la position de la dernière occurrence de l’objet o
dans le tableau appelant (et -1 si l’objet n’est pas trouvé).
• boolean isEmpty() : pour tester le contenu de l’ensemble, elle retourne faux si la
collection contient des éléments et vrai si non.
• String toString() : Renvoie la représentation du tableau appelant sous forme d’une chaine de
caractères. Cette représentation est obtenue en donnant la liste des conversions des éléments sous
forme de chaines de caractères (obtenues par toString()), séparées par des virgules et entourées d’une
paire de crochets.
• void clear () : vide la liste.
• Object [ ] toArray() : pour recopier une collection ( ensemble ) dans un tableau.
Exemple : ArrayList List = new ArrayList();
Object[] tab = new Object[[Link]()];
tab = [Link]();