1. ArrayList
classe
Aujourd'hui, nous allons explorer la ArrayList
classe. Il s'agit de la première de plusieurs classes connues sous le nom de collections . En Java, les collections sont un sujet tellement vaste et utile qu'une quête CodeGym entière leur est consacrée.
Pour bien comprendre comment les collections sont structurées et toutes leurs nuances, vous devez d'abord apprendre la POO, les interfaces, l'héritage, les bases du multithreading, et bien plus encore.
Aujourd'hui, nous allons donc nous familiariser avec le type de collection le plus simple. Mais à un niveau suffisamment profond pour que vous compreniez comment l'utiliser et comment cela fonctionne. Maintenant, rencontrez la ArrayList
collection .
La trame de fond
Je vais commencer par un peu de contexte. Les programmeurs n'aimaient vraiment pas un aspect des tableaux : le fait que leur taille ne peut pas être modifiée. Que faire si vous avez besoin de stocker trois éléments supplémentaires dans un tableau, mais qu'il n'y a qu'une seule cellule vide ?
La seule solution aux limitations d'espace d'un tableau était de créer un très grand tableau afin d'accueillir tous les éléments que vous pourriez avoir besoin de stocker. Mais c'était généralement une perte de mémoire. Si un tableau contenait généralement deux ou trois éléments mais qu'il y avait même une infime chance qu'il ait besoin d'en stocker 100, alors il était nécessaire de créer un tableau avec la capacité d'en stocker 100.
Alors qu'est-ce que les programmeurs ont trouvé? Ils ont écrit la ArrayList
classe, qui faisait le même travail que la Array
classe, mais était redimensionnable.
Classe ArrayListArrayList class
Le nom de la ArrayList
classe est formé de deux mots : Array + List. Array
est un tableau et List
est une liste.
Chaque ArrayList
objet contient un tableau ordinaire d'éléments. Lorsque vous lisez des éléments à partir d'un ArrayList
, l'objet les récupère à partir de son tableau interne. Lorsque vous écrivez des éléments, il les écrit dans le tableau interne.
La classe ArrayList n'a pas tous les inconvénients des tableaux. Il sait comment :
- Stocker des éléments d'un type spécifique
- Redimensionner dynamiquement la liste
- Ajouter des éléments à la fin de la liste
- Insérer des éléments au début ou au milieu de la liste
- Supprimer des éléments de n'importe où dans la liste
Pour plus de détails, voir ci-dessous:
2. Créer un ArrayList
objet
Pour créer un ArrayList
objet, vous devez écrire un code comme celui-ci :
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
Où ArrayList
est le type/classe de la collection, TypeParameter
est le type des éléments stockés dans la ArrayList
collection et name
est le nom d'une ArrayList<TypeParameter>
variable.
La name
variable a un type générique. Il se compose de deux types : le type de la collection est indiqué en premier, puis des crochets pointus sont utilisés pour indiquer le type des éléments stockés dans la collection.
Exemples:
Code | Description |
---|---|
|
Liste d'entiers |
|
Liste des chaînes |
|
Liste des nombres réels |
Contrairement aux tableaux, les collections ne peuvent pas stocker de types primitifs, uniquement des types de référence . Donc, si vous avez besoin d'une collection de int
s, utilisez Integer
plutôt la classe wrapper.
3. Opérations avec unArrayList
Initialement, la longueur de la liste nouvellement créée est nulle, puisqu'elle contient 0 éléments. Si vous ajoutez un élément à la liste, sa longueur augmente de 1. Si vous supprimez l'élément ajouté, la longueur redescend à zéro.
Le tableau suivant peut vous en apprendre plus sur les méthodes de la ArrayList
classe :
Méthodes | Description |
---|---|
|
Ajoute l'élément passé à la liste |
|
Ajoute un élément à un emplacement spécifique dans la liste. |
|
Renvoie l'élément dont l'index estindex |
|
Affecte value à l'élément dont l'index estindex |
|
Supprime l'élément dont l'index est index . Renvoie l'élément supprimé. |
|
Supprime l'élément que vous transmettez à la méthode. S'il existe plusieurs éléments de ce type, le premier sera supprimé. |
|
Efface la liste, c'est-à-dire supprime tous les éléments de la liste. |
|
Vérifie si la liste contient value . |
|
Vérifie si la liste est vide ou non. En d'autres termes, si la longueur de la liste est nulle. |
|
Renvoie la taille de la liste, c'est-à-dire le nombre d'éléments dans la liste. |
|
Retourne un tableau contenant les éléments de la liste. Vous devez passer le tableau à la méthode. |
Ces méthodes vous permettent de faire presque tout ce que vous voulez avec la liste : échanger des éléments, ajouter des éléments et supprimer des éléments. Vous pouvez effacer la liste avec une seule commande, ou même convertir la liste en tableau.
4. Comparaison de ArrayList
etArray
Je ne pense pas que nous puissions éviter de comparer ArrayList
et un tableau.
Il n'y a que 4 actions que vous pouvez effectuer avec les tableaux :
- Créer un tableau
- Obtenir un élément par index
- Définir un élément par index
- Obtenir la longueur du tableau
Voici ces opérations telles qu'elles s'appliquent à un tableau et à un ArrayList
:
Déployer | Liste des tableaux |
---|---|
|
|
|
|
|
|
|
|
Comparons le ArrayList
fonctionnement d'un et le fonctionnement d'un tableau. Par exemple, implémentons cette tâche : "lisez 10 chaînes à partir du clavier et affichez-les à l'écran dans l'ordre inverse"
Utiliser le tableau | Utilisation de ArrayList |
---|---|
|
|
L'analogie est claire. Tout est en quelque sorte plus court et plus clair pour les tableaux. Mais ArrayList
ce n'est pas difficile non plus : pour obtenir un élément, on utilise la get()
méthode ; pour changer un élément, la set()
méthode ; pour obtenir la longueur de la liste, la size()
méthode.
Alors pourquoi les programmeurs utilisent-ils la ArrayList
classe ?
Le tout, bien sûr, ce sont toutes les autres méthodes que les tableaux ordinaires n'ont pas :
- Ajouter un élément à la liste
- Ajouter un élément au milieu de la liste
- Rechercher un élément dans la liste
- Supprimer un élément d'une liste
GO TO FULL VERSION