Différence clé - ArrayList vs LinkedList
Les collections sont utiles pour stocker des données. Dans un tableau normal, la taille du tableau est fixe. Parfois, il est nécessaire de créer des tableaux qui peuvent croître selon les besoins. Les langages de programmation tels que Java ont des collections. C'est un framework avec un ensemble de classes et d'interfaces. Il sert de conteneur pour un groupe d'éléments. Les collections permettent de stocker, mettre à jour, récupérer un ensemble d'éléments. Cela aide à travailler avec des structures de données telles que des listes, des ensembles, des arbres et des cartes. La liste est une interface du framework Collection. ArrayList et LinkedList sont deux classes dans le cadre des collections. Ils implémentent l'interface de collecte et l'interface de liste. Cet article décrit la différence entre ArrayList et LinkedList. ArrayList est une classe qui étend AbstractList et implémente l'interface List, qui utilise en interne un tableau dynamique pour stocker des éléments de données. LinkedList est une classe qui étend la AbstractSequentialList et implémente les interfaces List, Deque et Queue, qui utilisent en interne une liste doublement liée pour stocker des éléments de données. C'est la principale différence entre ArrayList et LinkedList.
CONTENU
1. Présentation et différence clé
2. Qu'est-ce que ArrayList
3. Qu'est-ce que LinkedList
4. Similitudes entre ArrayList et LinkedList
5. Comparaison côte à côte - ArrayList vs LinkedList sous forme tabulaire
6. Résumé
Qu'est-ce que ArrayList?
La classe ArrayList est utilisée pour créer des tableaux dynamiques. Contrairement à un tableau normal, la taille d'un tableau dynamique n'est pas fixe. Un objet créé à l'aide de la classe ArrayList est autorisé à stocker un ensemble d'éléments dans la liste. La capacité augmente automatiquement, de sorte que le programmeur peut ajouter des éléments à la liste. La classe ArrayList étend la classe AbstractList qui implémente l'interface List. Par conséquent, les méthodes de l'interface List peuvent être utilisées par ArrayList. Pour accéder aux éléments, la méthode get () est utilisée. La méthode add () peut être utilisée pour ajouter des éléments à la liste. La méthode remove () est utilisée pour supprimer un élément de la liste. Référez-vous au programme ci-dessous.
Figure 01: Exemple de ArrayList
Selon le programme ci-dessus, un objet de ArrayList est créé. En utilisant la méthode add, les éléments peuvent être ajoutés dynamiquement. Les éléments «A», «B», «C», «D» et «E» sont ajoutés en utilisant la méthode add. La méthode remove est utilisée pour supprimer un élément de la liste. Lors du passage de 4 à la méthode remove, la lettre du 4ème index qui est «E» est supprimée de la liste. Lorsque vous parcourez la liste à l'aide de la boucle for, les lettres A, B, C et D s'impriment.
Qu'est-ce que LinkedList?
Similaire à ArrayList, LinkedList est utilisé pour stocker des éléments de données de manière dynamique. Un objet créé à l'aide de la classe LinkedList est autorisé à stocker un ensemble d'éléments dans la liste. La capacité augmente automatiquement, de sorte que le programmeur peut ajouter des éléments à la liste. Il utilise en interne une liste doublement liée pour stocker des données. Dans une liste doublement liée, les données sont stockées sous forme de nœuds. Chaque nœud contient deux liens. Le premier lien pointe vers le nœud précédent. Le lien suivant pointe vers le nœud suivant de la séquence.
La classe LinkedList étend la classe AbstractSequentialList et implémente l'interface List. Par conséquent, les méthodes de l'interface List peuvent être utilisées par LinkedList. La méthode get () peut être utilisée pour accéder aux éléments de la liste. La méthode add () peut être utilisée pour ajouter des éléments à la liste. La méthode remove () est utilisée pour supprimer un élément de la liste. Référez-vous au programme ci-dessous.
Figure 02: Exemple avec LinkedList
Selon le programme ci-dessus, un objet LinkedList est créé. En utilisant la méthode add, les éléments peuvent être ajoutés dynamiquement. Les éléments «A», «B», «C», «D» et «E» sont ajoutés en utilisant la méthode add. La méthode remove est utilisée pour supprimer un élément de la liste. En passant 4 à la méthode remove, la lettre du 4ème index qui est «E» est supprimée de la liste. Lors de l'itération à l'aide de la boucle for, les lettres A, B, C et D s'imprimeront.
Quelles sont les similitudes entre ArrayList et LinkedList?
- ArrayList et LinkedList implémentent l'interface de liste.
- ArrayList et LinkedList peuvent contenir des éléments en double.
- ArrayList et LinkedList conservent l'ordre d'insertion.
Quelle est la différence entre ArrayList et LinkedList?
Diff article au milieu avant la table
ArrayList vs LinkedList |
|
ArrayList est une classe qui étend AbstractList et implémente l'interface List qui utilise en interne un tableau dynamique pour stocker des éléments de données. | LinkedList est une classe qui étend la AbstractSequentialList et implémente les interfaces List, Deque, Queue, qui utilisent en interne une liste doublement liée pour stocker des éléments de données. |
Accès aux éléments | |
L'accès aux éléments d'ArrayList est plus rapide que celui d'une LinkedList. | L'accès aux éléments de LinkedList est plus lent que celui d'un ArrayList. |
Manipuler des éléments | |
La manipulation des éléments d'ArrayList est plus lente que celle d'une LinkedList. | La manipulation des éléments de LinkedList est plus rapide que celle d'un ArrayList. |
Comportement | |
ArrayList fonctionne comme une liste. | LinkedList fonctionne comme une liste et une file d'attente. |
Résumé - ArrayList vs LinkedList
Le cadre de collecte permet de travailler avec des structures de données telles que des listes, des arbres, des cartes et des ensembles. La liste est une interface du framework de collecte. Cet article décrit la différence entre ArrayList et LinkedList. ArrayList est une classe qui étend AbstractList et implémente l'interface List qui utilise en interne un tableau dynamique pour stocker des éléments de données. LinkedList est une classe qui étend la AbstractSequentialList et implémente les interfaces List, Deque, Queue, qui utilisent en interne une liste doublement liée pour stocker des éléments de données. C'est la différence entre ArrayList et LinkedList.