2013-05-10 6 views
16

In Java-Sammlung, welche Sammlung wird keine Duplikate zulassen und welche auch Reihenfolge der Daten beibehalten?Sammlung, die den Anzeigenauftrag und keine Duplikate verwaltet

+1

Ist diese Hilfe? http: // Stapelüberlauf.com/questions/8712469/any-implementation-of-ordered-set-in-java – vikingsteve

+0

LinkedHashSet ............ –

+0

Warum wird dies als ein Duplikat markiert? Gibt es eine bestellungskonservierende Menge? in Java? Dies ist kein Duplikat davon, diese Frage fragt nach Sets und Listen; Diese Frage betrifft alle Sammlungen. – searchengine27

Antwort

9
LinkedHashSet 

Gemäß der documentation

Diese Implementierung von HashSet dadurch unterscheidet, dass es eine hält doppelt verknüpfte Liste über alle Einträge ausgeführt wird. Diese verknüpften Liste definiert die Iteration Reihenfolge, die die Reihenfolge, in der Elemente in den Satz eingefügt wurden (Insertion Ordnung)

14

LinkedHashSet tut beide

Set set = new LinkedHashSet(); 
+4

Ein 'HashSet' behält die Reihenfolge des Einfügens nicht bei. –

+0

['HashSet'] (http://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html) behält die Reihenfolge der Anzeigen nicht bei. –

+0

Ja, sorry, bin zu aufgeregt :) – Sam

2

Sie LinkedHashSet zu diesem Zweck überprüfen.

erlauben A Set keine doppelten Werte. Und LinkedHashSet wird Insertionsreihenfolge beibehalten.

Hash-Tabelle und verkettete Listenimplementierung der Set-Schnittstelle, mit vorhersagbare Iterationsreihenfolge. Diese Implementierung unterscheidet sich von HashSet darin, dass sie eine doppelt verknüpfte Liste verwaltet, die alle ihre Einträge durchläuft. Diese verkettete Liste definiert die Iterationsreihenfolge, dh die Reihenfolge, in der Elemente in die Menge eingefügt wurden (Einfügereihenfolge). Beachten Sie, dass der Anzeigenauftrag nicht betroffen ist, wenn ein Element erneut in den Satz eingefügt wird. (Element E in einer Menge S wieder eingesetzt wird, wenn s.add (e) ist aufgerufen, wenn s.contains (e) wahr zurückgeben würde unmittelbar vor dem Aufruf .)

6

A LinkedHashSet die Rechnung passen sollte .

Hash-Tabelle und verknüpfte Liste Implementierung der Set-Schnittstelle, mit vorhersehbaren Iterationsreihenfolge. Diese Implementierung unterscheidet sich von HashSet darin, dass sie eine doppelt verknüpfte Liste führt, die alle Einträge durchläuft. Diese verkettete Liste definiert die Iterationsreihenfolge, , die die Reihenfolge ist, in der Elemente in den Satz (Einfügereihenfolge) eingefügt wurden.

1

Sie möchten einen geordneten Satz, der von LinkedHashSet implementiert wird.

Verwandte Themen