LinkedList vs ArrayList in Java: Kennen Sie die Hauptunterschiede

Dieser Artikel zu LinkedList vs ArrayList bietet einen korrekten Vergleich zwischen den Listen, die die Listenschnittstelle implementieren

Liste in Java ist eine Subschnittstelle der Dies bietet optimale Lösungen mit Konzepten wie Positionszugriff, Iteration usw. In diesem Artikel werde ich die Hauptunterschiede zwischen der Listenschnittstelle LinkedList und ArrayList in Java diskutieren.

Nachfolgend sind die in diesem Artikel behandelten Themen aufgeführt:





Lass uns anfangen!

Was ist LinkedList?

Nach dem Arrays ist die zweitbeliebteste Datenstruktur definitiv eine . Eine verknüpfte Liste ist eine lineare Datenstruktur, die aus a bestehtKnotenkette, in der jeder Knoten einen Wert und a enthältZeigerzum nächsten Knoten in der Kette.Auch tDas letzte Glied in einer verknüpften Liste zeigt auf null und gibt das Ende der Kette an.Ein Element in einer verknüpften Liste heißt a Knoten .Der erste Knoten in der Liste heißt Kopf .Der letzte Knoten heißt Schwanz .



Lassen Sie mich ein einfaches Beispiel dafür geben: Stellen Sie sich eine Kette von Büroklammern vor, die miteinander verbunden sind. Sie können ganz einfach oben oder unten eine weitere Büroklammer hinzufügen. Es ist auch einfach, eine in die Mitte einzufügen. Alles, was Sie tun müssen, ist, die Kette in der Mitte zu brechen, eine neue Büroklammer hinzuzufügen und die andere Hälfte wieder anzuschließen. Eine verknüpfte Liste ähnelt dieser.

Beispiel:

Paket MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public statisch void main (String args []) {/ * Deklaration der verknüpften Liste * / LinkedListl_list = new LinkedList () / * add (String Item) ist wird zum Hinzufügen * der Elemente zur verknüpften Liste verwendet * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Inhalt der verknüpften Liste:' + l_list) / * Elemente an der angegebenen Position hinzufügen * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('Inhalt der l_list nach der Bearbeitung: '+ l_list) / * Erstes und letztes Element hinzufügen * / l_list.addFirst (' Erster Kurs ') l_list.addLast (' Letzter Kurs ') System.out.println (' l_list Inhalt nach dem Hinzufügen: '+ l_list) / * Get und setze Elemente in der Liste * / Object firstvar = l_list.get (0) System.out.println ('Erstes Element:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content nach dem Aktualisieren des ersten Elements: '+ l_list) / * Von einer Position entfernen * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList nach Löschen des Elements an 2. und 3. Stelle' + l_list) / * Erstes und letztes Element entfernen * / l_list.removeFirst () l_list.removeLast () System.out.println ('Endgültiger Inhalt nach Entfernen des ersten und letzten Elements : '+ l_list) / * Iterieren der verknüpften Liste * / ListIteratoritrator = l_list.listIterator () System.out.println (' Mit Iterator angezeigte Liste: ') while (itrator.hasNext ()) {System.out.println (itrator .Nächster()) } } }

Ausgabe:



Inhalt der verknüpften Liste = {Java, Python, Scala, Swift} Inhalt nach der Bearbeitung = {Java, Python, JavaScript, Kotlin, Scala, Swift} Inhalt nach dem Hinzufügen = {Erster Kurs, Java, Python, JavaScript, Kotlin, Scala, Swift, Letzter Kurs} Erster Artikel = {Erster Kurs} Inhalt nach Aktualisierung des ersten Artikels = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Letzter Kurs} Inhalt nach Löschen des Artikels an der 2. und 3. Position = {Java9, Python, Kotlin, Scala, Swift, Letzter Kurs} Endgültiger Inhalt nach dem Entfernen des ersten und letzten Elements = {Python, Kotlin, Scala, Swift} Liste, die mit iterator = Python Kotlin Scala Swift angezeigt wird

Fahren wir nun mit dem nächsten Thema fort.

Was ist eine ArrayList?

ist die Implementierung der Listenschnittstelle, bei der die Elemente dynamisch zur entsprechenden Liste hinzugefügt oder daraus entfernt werden können. Hier wird die Größe der Liste dynamisch erhöht, wenn die Elemente mehr als die ursprüngliche oder tatsächliche Größe hinzugefügt werden. Obwohl es langsamer als Standard-Arrays sein kann, kann es in Programmen hilfreich sein, in denen viele Manipulationen im Array erforderlich sind.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList wird für folgende Zwecke verwendet:

Java bricht aus der Methode aus
  • ArrayList in Java ist es gewohnt Geschäft eine dynamische Sammlung von Elementen.
  • Es wird durch eine Größe initialisiert. Die Größe kann sich jedoch erhöhen, wenn die Sammlung wächst, und schrumpfen, wenn Objekte aus dem entfernt werden .
  • Mit ArrayList können Sie auch zufällig auf die Liste zugreifen.

Lassen Sie uns fortfahren und auf die Ähnlichkeiten zwischen LinkedList und ArrayList in Java hinweisen.

Ähnlichkeiten zwischen LinkedList und ArrayList

Dies sind die bemerkenswerten Ähnlichkeiten zwischen LinkedList und ArrayList in Java.

  • ArrayList und LinkedList sind die Implementierungen von Listenschnittstelle .
  • Sowohl ArrayList als auch LinkedList behalten die Einfügereihenfolge der Elemente bei. Dies bedeutet, dass während der Anzeige der Listenelemente die Ergebnismenge dieselbe Reihenfolge aufweist, in der die Elemente in die Liste eingefügt wurden.
  • DieseArrayList- und LinkedList-Klassen sind nicht synchronisiert und können mithilfe von explizit synchronisiert werden CollectionsSynchronizedList Methode.
  • Der von diesen Klassen zurückgegebene Iterator und ListIterator sind ausfallsicher. Dies bedeutet, dass, wenn die Liste zu einem bestimmten Zeitpunkt nach dem Erstellen des Iterators strukturell geändert wird, mit Ausnahme vonWenn der Iterator eigene Methoden zum Entfernen oder Hinzufügen verwendet, wirft der Iterator a ConcurrentModificationException .

Unterschiede zwischen LinkedList und ArrayList

Schauen wir uns zunächst die Parameter an, um LinkedList mit ArrayList in Java zu vergleichen.

Parameter zum Vergleichen von LinkedList und ArrayList in Java:

  • Operation
  • Implementierung
  • Prozess
  • Erinnerung
  1. Operationen

Das Einfügen, Hinzufügen und Entfernen eines Elements ist in a schneller LinkedList weil wir die Größe nicht wie in ändern müssen Anordnungsliste.

2. Implementierung

Anordnungsliste basiert auf dem Konzept eines dynamisch anpassbaren Arrays, während LinkedList basiert auf der Implementierung einer doppelt verknüpften Liste

3. Prozess

ZU LinkedList Klasse kann als Liste und Warteschlange verwendet werden, da sie List- und Deque-Schnittstellen implementiert, während ArrayList nur Listen implementieren kann.

Vier. Erinnerung

ZU LinkedList verbraucht mehr Speicher als ein Anordnungsliste weil jeder Knoten in einem LinkedList speichert zwei Referenzen, während Anordnungsliste enthält nur Daten und deren Index

LinkedList vs ArrayList in Java

ParameterLinkedListAnordnungsliste
Operationen

Das Einfügen, Hinzufügen und Entfernen erfolgt erheblich schneller

Vergleichsweise die Operationensind hier langsam

Implementierung

Folgt der Implementierung einer doppelt verknüpften Liste

Folgt dem Konzept eines dynamisch anpassbaren Arrays

Prozess

Eine LinkedList-Klasse kann eine Liste und eine Warteschlange sein, da sie List- und Deque-Schnittstellen implementiert

Kontroverse über künstliche Intelligenz Vor- und Nachteile

Eine ArrayList-Klasse kann eine Liste sein, da sie nur Listen implementiert

Erinnerung

Der Speicherverbrauch in LinkedList ist hoch

Weniger im Vergleich zu LinkedList

Das war's Leute! Dies bringt uns zum Ende dieses Artikels über die LinkedList vs ArrayList in Java. Ich hoffe, euch ist klar, was in diesem Artikel gelehrt wird.

Wenn Sie diesen Artikel zu 'LinkedList vs ArrayList in Java' gefunden haben, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen, und wir entwickeln einen Lehrplan, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten.