Différence entre ArrayList et LinkedList

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 pouvant se développer en fonction des 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. Il est utile de 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 du framework de collections. Ils implémentent l'interface de collection et l'interface de liste. Cet article traite de 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 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 le différence clé entre ArrayList et LinkedList.

CONTENU

1. Vue d'ensemble et différence clé
2. Qu'est-ce que ArrayList?
3. Qu'est-ce que LinkedList?
4. Similarités 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 afin que le programmeur puisse 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 () permet de supprimer un élément de la liste. Voir le 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 à l'aide de la méthode add. La méthode remove est utilisée pour supprimer un élément de la liste. Lorsque vous passez 4 à la méthode remove, la lettre du 4ème index, qui est "E", est supprimée de la liste. En parcourant la liste à l’aide de la boucle for, les lettres A, B, C et D seront imprimées..

Qu'est-ce que LinkedList??

Semblable à ArrayList, la liste LinkedList est utilisée 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 afin que le programmeur puisse 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 noeud précédent. Le lien suivant pointe vers le prochain noeud 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 () permet de supprimer un élément de la liste. Voir le programme ci-dessous.

Figure 02: Exemple avec LinkedList

Selon le programme ci-dessus, un objet de 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 à l'aide de la méthode add. La méthode remove est utilisée pour supprimer un élément de la liste. Lorsque vous passez 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 seront imprimées..

Quelles sont les similitudes entre ArrayList et LinkedList?

  • ArrayList et LinkedList implémentent l'interface List.
  • ArrayList et LinkedList peuvent contenir des éléments en double.
  • ArrayList et LinkedList conservent tous deux l'ordre d'insertion..

Quelle est la différence entre ArrayList et LinkedList?

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 AbstractSequentialList et implémente les interfaces List, Deque, Queue, qui utilise en interne une liste doublement liée pour stocker des éléments de données..
 Accéder aux éléments
L'accès aux éléments de ArrayList est plus rapide que celui d'une LinkedList. L'accès aux éléments de LinkedList est plus lent que d'un ArrayList.
Manipuler des éléments
La manipulation des éléments de 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

La structure 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 cadre de la collection. Cet article a traité de 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 AbstractSequentialList et implémente les interfaces List, Deque, Queue, qui utilise en interne une liste doublement liée pour stocker des éléments de données. C’est la différence entre ArrayList et LinkedList.

Référence:

1.Introduction à la liste chaînée | Didacticiel sur la structure de données | Studytonight. Disponible ici
2. "LinkedList in Java - javatpoint.",Le point, Disponible ici
3. "Classe Java ArrayList - javatpoint." Le point, Disponible ici