Unterschied zwischen List und Set in Java

Autor: Laura McKinney
Erstelldatum: 2 April 2021
Aktualisierungsdatum: 10 Kann 2024
Anonim
Java Set vs List
Video: Java Set vs List

Inhalt


Die List and Set-Schnittstelle erweitert die Collection. Beide verwalten die Sammlung von Elementen oder Objekten. Der Hauptunterschied, der sie voneinander unterscheidet, ist jedoch, dass List eine Sammlung geordneter Elemente ist. Die Elemente werden mithilfe einer Indexvariablen hinzugefügt oder entfernt oder auf sie zugegriffen. Andererseits ist Set eine Sammlung von Objekten, in denen die Sammlung keine doppelten Elemente zulässt. Lassen Sie uns anhand der folgenden Vergleichstabelle weitere Unterschiede zwischen Listen- und Set-Schnittstellen untersuchen.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle

Grundlage für den VergleichListe einstellen
BasicListe behält die Reihenfolge der in einer Liste gespeicherten Elemente bei.Set behält die Einfügereihenfolge nicht besonders bei, während Linked HashSet die Einfügereihenfolge beibehält.
VervielfältigungDie Liste enthält möglicherweise doppelte Elemente.Die add () -Methode gibt false zurück, wenn Sie versuchen, die doppelten Elemente einzufügen.
MethodenZusätzlich zu den in Collection definierten Methoden definiert List einige seiner eigenen Methoden.Set definiert keine zusätzliche Methode.
Implementierung List wird von ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack implementiert.Set wird von HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet implementiert.


Definition von Liste

Die Listenschnittstelle erweitert die Sammlungsschnittstelle. Eine Liste ist eine geordnete Sammlung von Elementen oder Objekten. Im Gegensatz zu Set kann List doppelte Elemente enthalten. Zusätzlich zu den in Sammlungsliste definierten Methoden werden einige eigene Methoden wie die indexbasierte Methode get () und set () definiert. Die von Collection geerbten Methoden add () und remove (), mit denen das angegebene Element dem im method-Argument angegebenen Index hinzugefügt oder daraus entfernt wird. List ist eine Art Array, dessen Größe zunimmt, wenn der Liste Elemente hinzugefügt werden.

List definiert keine Methode zum Bearbeiten des Indexbereichs in einer Liste. Es definiert eine sublist () -Methode, die eine Unterliste aus der ursprünglichen Liste eines angegebenen Bereichs zurückgibt. Die Änderungen, die Sie an der Unterliste vornehmen, werden auch in der ursprünglichen Liste angezeigt. Die Listenschnittstelle wird von ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack implementiert.


Definition von Set

Set interface erweitert die Collection-Schnittstelle. Die Set-Schnittstelle ist eine Sammlung oder eine Gruppe von Objekten, die kein doppeltes Objekt enthält. Das heißt, zwei Referenzen können nicht auf ein Objekt verweisen, oder eine Referenz kann nicht auf zwei Objekte verweisen, oder es können nicht zwei Referenzen auf Null verweisen. Die Reihenfolge oder Reihenfolge des Elements ist nicht wichtig. Set, aber es ist nicht so, dass es das geordnete Set verbietet.

Die Set-Schnittstelle definiert keine Methode zusätzlich zu der in Collection definierten Methode. Stattdessen werden die Methoden add () und addall () zum Hinzufügen doppelter Objekte in einer Sammlung eingeschränkt. Wenn Sie versuchen, mit der Methode add () von Collection ein doppeltes Objekt in eine Sammlung aufzunehmen, wird false zurückgegeben. Andernfalls wird true zurückgegeben. Die Set-Schnittstelle wird von HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet implementiert.

  1. Die Reihenfolge der Elemente / Objekte in einer Auflistung wird in List beibehalten, wohingegen Set die Reihenfolge der Elemente nicht beibehält, es jedoch eine Ausnahme gibt. LinkedHashSet behält die Einfügereihenfolge bei.
  2. List kann doppelte Elemente haben, da es jedes Element mit seinem Index identifiziert. Set erlaubt jedoch keine doppelten Elemente, da es kein Element mit Index hat, um ein Objekt in einer Auflistung zu identifizieren.
  3. List definiert zusätzlich zu den in Collection definierten Methoden einige eigene Methoden. Andererseits definiert Set keine eigene Methode, sondern schränkt die Methoden von Collection ein, um doppelte Elemente hinzuzufügen.
  4. List wird von ArrayList-, LinkedList-, CopyOnWriteArrayList-, Vector- und Stack-Schnittstellen implementiert. Andererseits wird Set von den Schnittstellen HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet implementiert.

Fazit:

Die Verwendung der List- und Set-Schnittstelle hängt von der jeweiligen Anforderung ab. Wenn die Reihenfolge der Objekte / Elemente wichtig ist, müssen Sie die Listenschnittstelle verwenden. Wenn Sie keine doppelten Elemente in Ihrer Sammlung benötigen, müssen Sie die Set-Schnittstelle verwenden