LinkedList vs ArrayList en Java: connaître les principales différences

Cet article LinkedList vs ArrayList vous donnera une comparaison appropriée entre les listes qui implémentent l'interface de liste

liste en Java est une sous-interface du qui donne des solutions optimales avec des concepts tels que l'accès positionnel, l'itération, etc. Dans cet article, je discuterai des principales différences entre l'interface de liste LinkedList et ArrayList en Java.



Vous trouverez ci-dessous les sujets abordés dans cet article:



fusionner le tri en c ++

Commençons!

Qu'est-ce que LinkedList?

Après tableaux , la deuxième structure de données la plus populaire est certainement une . Une liste chaînée est une structure de données linéaire qui est constituée d'unchaîne de nœuds dans laquelle chaque nœud contient une valeur et unaiguilleau nœud suivant de la chaîne.Aussi, tLe dernier lien d'une liste chaînée pointe vers null, indiquant la fin de la chaîne.Un élément d'une liste liée est appelé un nœud .Le premier nœud de la liste est appelé le tête .Le dernier nœud s'appelle le queue .



Permettez-moi de vous en donner un exemple simple: imaginez une chaîne de trombones reliés entre eux. Vous pouvez facilement ajouter un autre trombone en haut ou en bas. Il est également facile d’en insérer un au milieu. Tout ce que vous avez à faire est simplement de casser la chaîne au milieu, d'ajouter un nouveau trombone, puis de reconnecter l'autre moitié. Une liste chaînée est similaire à ceci.

Exemple:

package MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) is utilisé pour ajouter * les éléments à la liste liée * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Contenu de la liste liée:' + l_list) / * Ajouter des éléments à la position spécifiée * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Contenu après modification: '+ l_list) / * Ajouter le premier et le dernier élément * / l_list.addFirst (' First Course ') l_list.addLast (' Last Course ') System.out.println (' l_list Content after addition: '+ l_list) / * Get et définissez les éléments de la liste * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content après la mise à jour du premier élément: '+ l_list) / * Supprimer d'une position * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList après suppression de l'élément en 2ème et 3ème position' + l_list) / * Supprimer le premier et le dernier élément * / l_list.removeFirst () l_list.removeLast () System.out.println ('Contenu final après suppression du premier et du dernier élément : '+ l_list) / * Itération de la liste liée * / ListIteratoritrator = l_list.listIterator () System.out.println (' Liste affichée à l'aide de l'itérateur: ') while (itrator.hasNext ()) {System.out.println (itrateur .Suivant()) } } }

Production:



Contenu de la liste liée = {Java, Python, Scala, Swift} Contenu après modification = {Java, Python, JavaScript, Kotlin, Scala, Swift} Contenu après ajout = {Premier cours, Java, Python, JavaScript, Kotlin, Scala, Swift, Dernier cours} Premier élément = {Premier cours} Contenu après la mise à jour du premier élément = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Dernier cours} Contenu après suppression de l'élément en 2ème et 3ème position = {Java9, Python, Kotlin, Scala, Swift, Last Course} Contenu final après suppression du premier et du dernier élément = {Python, Kotlin, Scala, Swift} Liste affichée avec iterator = Python Kotlin Scala Swift

Maintenant, passons au sujet suivant.

Qu'est-ce qu'une ArrayList?

est l'implémentation de List Interface où les éléments peuvent être dynamiquement ajoutés ou supprimés de la liste correspondante. Ici, la taille de la liste est augmentée dynamiquement si les éléments sont ajoutés plus que la taille initiale ou réelle. Bien que cela puisse être plus lent que les tableaux standard, cela peut être utile dans les programmes où de nombreuses manipulations dans le tableau sont nécessaires.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList est utilisé à ces fins:

  • ArrayList en Java est utilisé pour boutique une collection d'éléments de taille dynamique.
  • Il est initialisé par une taille. Cependant, la taille peut augmenter si la collection s'agrandit et se rétrécit si des objets sont supprimés du .
  • En outre, ArrayList vous permet d'accéder de manière aléatoire à la liste.

Avançons et soulignons les similitudes entre LinkedList et ArrayList en Java.

Similitudes entre LinkedList et ArrayList

Ce sont les similitudes notables entre LinkedList et ArrayList en Java.

  • ArrayList et LinkedList sont les implémentations de Interface de liste .
  • ArrayList et LinkedList conservent l'ordre d'insertion des éléments. Cela signifie que, lors de l'affichage des éléments de la liste, l'ensemble de résultats aurait le même ordre dans lequel les éléments ont été insérés dans la liste.
  • Ces classesArrayList et LinkedList ne sont pas synchronisées et peuvent être synchronisées explicitement en utilisant CollectionsSynchronizedList méthode.
  • L'itérateur et ListIterator renvoyés par ces classes sont rapides. Cela signifie que, si la liste est modifiée structurellement à un moment donné après la création de l'itérateur, sauf les propres méthodes remove ou add de l'itérateur, l'itérateur lancera un ConcurrentModificationException .

Différences entre LinkedList et ArrayList

Tout d'abord, examinons les paramètres pour comparer LinkedList et ArrayList en Java.

Paramètres pour comparer LinkedList et ArrayList en Java:

  • Opération
  • la mise en oeuvre
  • Processus
  • Mémoire
  1. Opérations

Les opérations d'insertion, d'ajout et de suppression d'un élément sont plus rapides dans un LinkedList car nous n'avons pas besoin de redimensionner comme nous le faisons dans Liste des tableaux.

2. la mise en oeuvre

Liste des tableaux est basé sur le concept d'un tableau redimensionnable dynamiquement, tandis que LinkedList est basé sur la mise en œuvre de listes à double chaînage

3. Processus

À LinkedList La classe peut être utilisée comme une liste et une file d'attente car elle implémente les interfaces List et Deque alors qu'ArrayList ne peut implémenter que des listes.

Quatre. Mémoire

À LinkedList consomme plus de mémoire qu'un Liste des tableaux parce que chaque nœud d'un LinkedList stocke deux références, tandis que Liste des tableaux ne contient que les données et son index

LinkedList vs ArrayList en Java

ParamètresLinkedListListe des tableaux
Opérations

Les opérations d'insertion, d'ajout et de retrait sont assez rapides

Comparativement les opérationssont lents ici

la mise en oeuvre

Suit l'implémentation de la liste à double chaînage

Suit le concept de tableau redimensionnable dynamiquement

Processus

Une classe LinkedList peut être une liste et une file d'attente car elle implémente les interfaces List et Deque

comment déployer une application java dans aws

Une classe ArrayList peut être une liste car elle implémente uniquement des listes

Mémoire

La consommation de mémoire dans LinkedList est élevée

Moins que LinkedList

C’est tout! Cela nous amène à la fin de cet article sur LinkedList vs ArrayList en Java. J'espère que vous comprenez ce qui est enseigné dans cet article.

Si vous avez trouvé cet article sur «LinkedList vs ArrayList en Java», consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Nous sommes là pour vous aider à chaque étape de votre voyage et nous proposons un programme conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java.