Die Java Collection bietet eine Architektur für den Umgang mit der Gruppe von Objekten. Die Sammlung bedeutet eine einzelne Einheit von Objekten. Es ermöglicht uns, die Gruppe von Objekten als eine Einheit zu speichern und zu bearbeiten.
Mit dem Sammlungsframework können wir problemlos viele Vorgänge wie Suchen, Sortieren, Einfügen, Löschen und Bearbeiten einer Gruppe von Objekten durchführen.
Das Java Collection-Framework bietet mehrere Schnittstellen und Klassen. Die Schnittstellen enthalten Satz, Aufführen , Warteschlange, Deque , und Klassen enthalten Anordnungsliste , Vektor , LinkedList , HashSet , TreeSet , LinkedHashSet , Und Prioritätswarteschlange .
Java aktualisieren
In diesem Abschnitt werden wir zwei Elemente unterscheiden Sammlungsrahmen , also List und ArrayList. Die Liste ist eine Schnittstelle und ArrayList ist eine Klasse.
Listenschnittstelle
Die Liste ist eine untergeordnete Schnittstelle des Collection-Frameworks, die es uns ermöglicht, die geordnete Sammlung der Objekte zu verwalten. Wir können die doppelten Werte und Nullelemente mithilfe von List speichern. Es bietet eine indexbasierte Methode zum Durchführen von Einfüge-, Lösch-, Such- und Aktualisierungsvorgängen für die Objekte.
Die List-Schnittstelle findet im Paket java.util statt. Es implementiert die Klassen ArrayList, LinkedList, Stack und Vector. Es ist auch eine Basis für ListIterator-Klassen, mit denen wir die Liste in Vorwärts- und Rückwärtsrichtung iterieren können.
Die Listenschnittstelle ermöglicht den Positionszugriff und das Einfügen von Elementen und behält die Einfügereihenfolge bei. Die Instanz der Liste kann mithilfe der implementierenden Klassen erstellt werden.
Implementierung der Liste:
Wir können die List-Schnittstelle implementieren, indem wir ArrayList, LinkedList, Vector und verwenden Stack-Klassen .
Um die List-Schnittstelle zu instanziieren, können wir die folgenden Syntaxen verwenden:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Betrachten Sie das folgende Beispiel einer Liste:
import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Ausgabe:
plsql
[Hello, Java, Tpoint]
ArrayList-Klasse
Die ArrayList-Klasse verwendet ein dynamisches Array zum Speichern der Elemente. Die ArrayList-Klasse verhält sich wie ein Array, es gibt jedoch keine Größenbeschränkung. Wir können die Elemente jederzeit hinzufügen oder entfernen. Wir können das doppelte Element mithilfe der ArrayList-Klasse speichern. Es verwaltet die Reihenfolge der Einfügung intern.
Die ArrayList-Klasse ist viel flexibler als das herkömmliche Array. Es implementiert die List-Schnittstelle, um alle Methoden der List-Schnittstelle zu verwenden. Es findet in ... statt Java .util-Paket.
Die ArrayList-Klasse erbt die AbstractList-Klasse und implementiert die List-Schnittstelle. Auf die Elemente kann zufällig zugegriffen werden. Es kann nicht für primitive Typen wie int, char usw. verwendet werden; Für diese Datentypen benötigen wir eine Wrapper-Klasse.
Implementierung von ArrayList:
Eine ArrayList-Klasse erbt alle Methoden der AbstractList-Klasse und implementiert die List-Schnittstelle.
Die ArrayList-Klasse kann wie folgt deklariert werden:
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable
ArrayList kann wie folgt definiert werden:
ArrayList myList = new ArrayList();
Betrachten Sie das folgende Beispiel von ArrayList:
import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } }
Ausgabe:
[Hello, Java, Tpoint]
Einige wichtige Unterschiede zwischen der Listenschnittstelle und der ArrayList-Klasse
Einige Hauptunterschiede zwischen List und ArrayList sind wie folgt:
- Einer der Hauptunterschiede ist das List ist eine Schnittstelle und ArrayList ist eine Klasse des Java Collection Frameworks.
- Der List erweitert das Sammlungsframework , vergleichsweise ArrayList erweitert die AbstractList-Klasse und implementiert die List-Schnittstelle .
- Der Namespace für List und ArrayList ist System.Collection.Generic bzw. System Collection.
- Listen speichern Elemente in einer Reihenfolge und werden durch die einzelne Indexnummer identifiziert. Im Vergleich dazu speichert ArrayList die Elemente in einem dynamischen Array; es kann bei Bedarf wachsen.
Wenn wir die Liste wie folgt definieren:
List myList = new ArrayList();
Das bedeutet, dass wir die Methoden und Referenzmitglieder nur über die List-Schnittstelle aufrufen können.
Wenn wir die ArrayList wie folgt definieren:
Entfernen Sie den NPM-Cache
ArrayList myList = new ArrayList();
Das bedeutet, dass wir verfügbare Methoden in ArrayList aufrufen und deren Mitglieder zusätzlich zur Liste verwenden können.
Betrachten Sie die folgende Tabelle für einige Kopfvergleiche zwischen List und ArrayList:
Vergleichsbasis | Aufführen | Anordnungsliste |
---|---|---|
Allgemein | Es ist eine Schnittstelle. | Es ist Klasse. |
Arbeiten | Es erstellt eine Liste von Objekten, auf die über die einzelne Indexnummer zugegriffen werden kann. | Es erstellt ein dynamisches Array, das bei Bedarf erweitert werden kann. |
Implementierung | Liste list1= new ArrayList(); | ArrayList myList = new ArrayList(); |
Erweitern/Implementieren | Es erweitert den Sammlungsrahmen. | Es erweitert die AbstractList-Klasse und implementiert die List-Schnittstelle. |
Basispaket | java.util | java.util |
Namensraum | System.Collection.Generic | System.Collection |
Leistung | Es ermöglicht eine schnellere Manipulation von Objekten. | Es ermöglicht im Vergleich zu List eine langsame Manipulation von Objekten. |
Instanziierung | Es kann nicht instanziiert werden. | Es kann instanziiert werden |
Abschluss
Die Liste ist eine Schnittstelle und die ArrayList ist eine Klasse des Java Collection-Frameworks. Die Liste erstellt ein statisches Array und die ArrayList erstellt ein dynamisches Array zum Speichern der Objekte. Daher kann die Liste nach ihrer Erstellung nicht mehr erweitert werden, aber mithilfe der ArrayList können wir das Array bei Bedarf erweitern.
Wenn Sie den Polymorphismus nutzen möchten, ist es besser, die List-Schnittstelle zu verwenden. Wenn wir in Zukunft die Schnittstelle implementieren müssen, müssen wir das Programm nicht ändern.