Ich möchte etwas wie ImmutableLinkedHashMap<>
in Guava-Bibliothek zu finden. Ich muss eine unveränderliche Schlüssel-Wert-Datenstruktur mit einem Anzeigenauftrag verwenden. Also, was soll ich verwenden?Ich brauche eine unveränderliche Schlüssel-Wert-Struktur, die Einfügereihenfolge
Antwort
Ich bin nicht sicher, ob ich genau bin zu verstehen, was Sie nach, aber wenn es ein wirklich unveränderlich Map
ist, mght Sie bei ImmutableMap
aussehen wollen wie im doc erwähnt:
Ein unveränderbar, Hash-basiert
Map
mit zuverlässiger benutzerspezifizierter Iterationsreihenfolge. Erlaubt keine Nullschlüssel oder Werte.Im Gegensatz zu
Collections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
, die eine Ansicht einer separaten Karte ist, die sich noch ändern kann, enthält eine InstanzImmutableMap
ihre eigenen Daten und wird sich nie ändern.ImmutableMap
ist bequem fürpublic static final
Karten („constant Maps“) und lässt Sie auch einfach eine „defensive Kopie“ einer Karte auf Ihre Klasse von einem Anrufer
Eg vorgesehen machen, können Sie es in ähnlicher Weise verwenden:
Map<Integer, String> m = ImmutableMap.of(5,"Five",6,"Six",7,"Seven");
Hoffe, das war, was Sie wollten.
Ja, ich wollte das auch sagen. 'ImmutableMap' sieht aus wie es funktionieren sollte. – 808sound
Das Problem dabei ist, dass "ImmutableSortedMap" "ImmutableMap" erweitert, sodass Sie, wenn Sie über Clients dieser Methode verfügen, die Wartung von Anzeigenaufträgen nicht nach Typen erzwingen können. –
Erstellen Sie zunächst eine und verwenden Sie dann ImmutableMap.copyOf(linkedHashMap)
, um eine unveränderbare Kopie zu erstellen, die die gleiche Reihenfolge wie die ursprüngliche Karte hat.
Warum stören? 'ImmutableMap' verwendet bereits den Anzeigenauftrag. –
- 1. STL Multiset Einstellung Einfügereihenfolge C++
- 2. Ich brauche eine SQL-Abfrage
- 3. Warum brauche ich eine Speicherbarriere?
- 4. Ich brauche eine UDIG-Tutorials
- 5. Ich brauche
- 6. Ich brauche
- 7. MySQL, ORDER BY-Einfügereihenfolge, keine Sortierspalten
- 8. Unveränderliche Struktur mit Sammlung
- 9. Ich brauche eine Alternative zu `Assembly.GetEntryAssembly()`, die niemals Null zurückgibt
- 10. Ich brauche eine Verzögerung, die nicht gesetzt ist Timeout()
- 11. Ich brauche eine Variable, die einen kleinen Bereichswert haben
- 12. Ich brauche eine langsame C# -Funktion
- 13. UIBarButtonItem Aussehen Ich brauche eine Ausnahme
- 14. Ich brauche eine C# -Bibliothek für zipx
- 15. Ich brauche eine Abfrage in SQL
- 16. Ich brauche eine Serialisierung Framework für D
- 17. Ich brauche eine Unterauswahl in DQL
- 18. Ich brauche eine Windows-kompatible, quadratische Pixelschrift
- 19. Wann brauche ich eine dreifache Schrägstrichreferenz?
- 20. Die beste Möglichkeit, eine unveränderliche Zeichenfolge in Dafny zu aktualisieren
- 21. Wie implementiere ich Caching auf unveränderliche Weise?
- 22. Warum brauche ich die Gil für PyMem_Malloc()?
- 23. Ich brauche die Länge eines NSRegularExpression Ergebnisstring
- 24. Nicht zeigt die Ergebnisse ich brauche
- 25. Warum haben wir eine unveränderliche leere Karte?
- 26. So erstellen Sie eine unveränderliche Klasse
- 27. Warum brauche ich Pause?
- 28. Ich brauche eine Klasse, die eine Wörterbuchdatei erstellt, die auf der Festplatte lebt
- 29. nach Kundenwunsch ich brauche
- 30. Wie man Scalas unveränderliche Sammlungen hält unveränderliche Objekte
Siehe [Paket com.google.common.collect Beschreibung] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/package-summary.html#package_description) und [Unveränderliche Sammlungen auf Guava Wiki erklärt] (https://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained). – Xaerxess
Mögliches Duplikat von [Google Collections ImmutableMap-Iterationsreihenfolge] (http://stackoverflow.com/questions/3810738/google-collections-immutablemap-iteration-order) – Barett