Was ist der Unterschied zwischen Sammlung und Liste in Java?

Lesezeit: 4 Minuten

Benutzer-Avatar
Truong Ha

Was ist der Unterschied zwischen Collection und List auf Java? Wann sollte ich welche verwenden?

  • öffentliche Schnittstelle Liste erweitert Collection { }

    – rai.skumar

    26. Dezember 2012 um 10:21 Uhr

Benutzer-Avatar
Joachim Sauer

Zunächst einmal: A List ist ein Collection. Es ist ein spezialisiertes Collectionjedoch.

EIN Collection ist genau das: eine Sammlung von Gegenständen. Sie können Sachen hinzufügen, Sachen entfernen, Sachen iterieren und abfragen, wie viel Sachen dort drin sind.

EIN List fügt die Informationen über eine definierte Abfolge von Sachen hinzu: Sie können das Element an Position erhalten nkönnen Sie an Position ein Element hinzufügen nkönnen Sie das Element an Position entfernen n.

In einem Collection das geht nicht: “the 5th element in this collection” ist nicht definiert, weil es keine definierte Reihenfolge gibt.

Es gibt auch andere spezialisierte Sammlungen, zum Beispiel a Set was die Funktion hinzufügt, dass es niemals dasselbe Element zweimal enthalten wird.

  • ja, Liste ist eine geordnete Spezialisierung der Sammlung (aber nicht sortiert) +1

    – atamanroman

    23. Juli 2010 um 11:09 Uhr


  • List in Java erweitert die Sammlungsschnittstelle und erstellt indizierte Funktionen, die beim positionsbasierten Abruf- und Entfernungsverhalten helfen

    – reibungsfreie Riemenscheibe

    23. Juli 2010 um 18:46 Uhr

Benutzer-Avatar
krock

Collection ist die Root-Schnittstelle zur Hierarchie der Java-Sammlungen. List ist eine Unterschnittstelle, die eine geordnete Sammlung definiert, andere Unterschnittstellen sind es Queue die typischerweise Elemente speichern, die zur Verarbeitung bereit sind (z Stapel).

Das folgende Diagramm zeigt die Beziehung zwischen den verschiedenen Java-Erfassungstypen:

Java-Sammlungen

  • Dein Bild gefällt mir wirklich, ich habe es gesehen, als ich mich auf SCJP vorbereitete, aber heutzutage fast alles über diese Dinge vergessen.

    – Truong Ha

    23. Juli 2010 um 10:59 Uhr


  • Ich muss zugeben, dass dieses Bild war aus diesem Blog gewildert. Auch ich habe ein solches Diagramm zuerst im Buch von K&B SCJP gesehen.

    – krock

    23. Juli 2010 um 11:02 Uhr


  • aus dem scjp cert kann man viel lernen, die meisten bücher zu diesem thema sind super 🙂

    – atamanroman

    23. Juli 2010 um 11:07 Uhr

  • ich vermute Map ist kein Collection.

    – Giannis Christofakis

    28. August 2016 um 14:27 Uhr

Java API ist die beste Antwort darauf

Sammlung

Die Stammschnittstelle in der Sammlungshierarchie. Eine Sammlung stellt eine Gruppe von Objekten dar, die als ihre Elemente bezeichnet werden. Einige Sammlungen erlauben doppelte Elemente und andere nicht. Einige sind geordnet und andere ungeordnet. Das JDK bietet keine direkten Implementierungen dieser Schnittstelle: Es bietet Implementierungen spezifischerer Subschnittstellen wie Set und List. Diese Schnittstelle wird normalerweise verwendet, um Sammlungen herumzureichen und sie zu manipulieren, wenn maximale Allgemeingültigkeit erwünscht ist.

Aufführen (erweitert Sammlung)

Eine geordnete Sammlung (auch als Sequenz bezeichnet). Der Benutzer dieser Schnittstelle hat genaue Kontrolle darüber, wo in der Liste jedes Element eingefügt wird. Der Benutzer kann auf Elemente über ihren ganzzahligen Index (Position in der Liste) zugreifen und nach Elementen in der Liste suchen.

Im Gegensatz zu Mengen lassen Listen normalerweise doppelte Elemente zu. Formaler erlauben Listen normalerweise Paare von Elementen e1 und e2, so dass e1.equals(e2), und sie erlauben normalerweise mehrere Nullelemente, wenn sie überhaupt Nullelemente zulassen. Es ist nicht unvorstellbar, dass jemand eine Liste implementieren möchte, die Duplikate verbietet, indem er Laufzeitausnahmen auslöst, wenn der Benutzer versucht, sie einzufügen, aber wir gehen davon aus, dass diese Verwendung selten ist.

List und Set sind zwei Unterklassen von Collection.

In der Liste sind die Daten in einer bestimmten Reihenfolge.

In Set dürfen dieselben Daten nicht zweimal enthalten sein.

In Collection speichert es nur Daten ohne bestimmte Reihenfolge und kann doppelte Daten enthalten.

Sammlung ist die Super-Schnittstelle von List, sodass jede Java-Liste auch eine Instanz der Sammlung ist. Sammlungen sind nur sequentiell (und in keiner bestimmten Reihenfolge) iterierbar, während eine Liste den Zugriff auf ein Element an einer bestimmten Position über die ermöglicht get(int index) Methode.

Benutzer-Avatar
Ramja

Collection ist die Hauptschnittstelle der Java Collections-Hierarchie und List(Sequence) ist eine der Unterschnittstellen, die eine geordnete Sammlung definieren.

Benutzer-Avatar
Gian

Sammlung ist eine High-Level-Schnittstelle, die Java-Objekte beschreibt, die Sammlungen anderer Objekte enthalten können. Es ist nicht sehr spezifisch, wie auf sie zugegriffen wird, ob mehrere Kopien desselben Objekts in derselben Sammlung vorhanden sein können oder ob die Reihenfolge wichtig ist. Aufführen ist speziell ein bestellt Sammlung von Objekten. Wenn Sie Objekte in einer bestimmten Reihenfolge in eine Liste einfügen, bleiben sie in dieser Reihenfolge.

Und die Entscheidung, wo diese beiden Schnittstellen verwendet werden sollen, ist viel weniger wichtig als die Entscheidung, welche konkrete Implementierung Sie verwenden. Dies wirkt sich auf die zeitliche und räumliche Leistung Ihres Programms aus. Wenn Sie beispielsweise eine Liste wünschen, können Sie eine ArrayList oder eine LinkedList verwenden, die jeweils Auswirkungen auf die Anwendung haben. Für andere Sammlungstypen (z. B. Sets) gelten ähnliche Überlegungen.

1352150cookie-checkWas ist der Unterschied zwischen Sammlung und Liste in Java?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy