Voglio trovare qualcosa come ImmutableLinkedHashMap<>
nella libreria Guava. Ho bisogno di utilizzare una struttura di dati valore-chiave immutabile con un ordine di inserimento. Quindi, cosa dovrei usare?Ho bisogno di una struttura di valori-chiave immutabile che mantenga l'ordine di inserimento
risposta
io non sono sicuro che sto capire esattamente che cosa siete dopo, ma se si tratta di una realtà immutabile Map
, si mght voglio guardare ImmutableMap
Come menzionato nel documento:
An immutabile, basato su hash
Map
con ordine di iterazione specificato dall'utente specificato. Non consente chiavi o valori nulli.A differenza di
Collections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
, che è una vista di una mappa separata che può ancora cambiare, un'istanza diImmutableMap
contiene i propri dati e non cambierà mai.ImmutableMap
è conveniente perpublic static final
mappe ("mappe costanti") e consente inoltre di effettuare facilmente una "copia difensiva" di una mappa fornita alla classe da un chiamante
Ad esempio, si potrebbe usare in modo simile:
Map<Integer, String> m = ImmutableMap.of(5,"Five",6,"Six",7,"Seven");
Spero che questo sia quello che cercavi.
Sì, stavo per dire anche questo. 'ImmutableMap' sembra che dovrebbe funzionare. – 808sound
Il problema è che "ImmutableSortedMap" estende "ImmutableMap", quindi se si dispone di client con questo metodo, non è possibile imporre la manutenzione degli ordini di inserimento in base ai tipi. –
Creare prima un LinkedHashMap
e quindi utilizzare ImmutableMap.copyOf(linkedHashMap)
per creare una copia immutabile che avrà lo stesso ordine della mappa originale.
Perché preoccuparsi? 'ImmutableMap' utilizza già l'ordine di inserimento. –
- 1. Implementazione di Scala Scala immutabile che conserva l'ordine di inserimento
- 2. Classe immutabile vs Struttura immutabile
- 3. Ho bisogno di una barra di fronte rotaie percorso
- 4. Ho bisogno di una funzione C# lenta
- 5. Perché ho bisogno di interfaccia?
- 6. Ho davvero bisogno di libgcc?
- 7. Perché ho bisogno sia di mex endpoint che di httpGetEnable?
- 8. Mappatura di una struttura immutabile come componente in NHibernate
- 9. Quando ho bisogno di una classe anonima in C++?
- 10. Ho bisogno di aiuto nell'uso di PredicateBuilder
- 11. Come si rende una struttura immutabile?
- 12. Perché ho bisogno di una barriera di memoria?
- 13. Ho bisogno di una dichiarazione di ritorno dopo un'eccezione Python?
- 14. Ho bisogno di consigli prima di sviluppare una cattiva abitudine
- 15. Ho bisogno di caratteri di sottolineatura separati
- 16. Ho bisogno di una spiegazione di una classe wrapper con un esempio che un bambino capisca
- 17. Perché ho bisogno di più parentesi graffe durante l'inizializzazione di questa struttura?
- 18. Ho bisogno di aiuto su Bump Api che invia immagini
- 19. programmazione funzionale: immutabile efficienza struttura dati
- 20. , ma ho ancora bisogno di intestazioni?
- 21. Ho bisogno di Ulteriori informazioni su HandleError
- 22. Ho bisogno di aiuto su un algoritmo
- 23. Database locale, ho bisogno di alcuni esempi
- 24. Ho bisogno di un esempio di utilizzo Ypsilon
- 25. Ho bisogno di eseguire un allungamento dell'istogramma
- 26. In Perl, perché ho bisogno di esportatore?
- 27. Aspetto UIBarButtonItem Ho bisogno di un'eccezione
- 28. Ho bisogno di una sincronizzazione aggiuntiva quando utilizzo un BlockingQueue?
- 29. Di quale certificato SSL ho bisogno?
- 30. Ho bisogno di un abbonamento MSDN
Vedere [Descrizione pacchetto com.google.common.collect] (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/package-summary.html#package_description) e [ImmutableCollectionsExplained su wiki Guava] (https://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained). – Xaerxess
Possibile duplicato di [Ordine di iterazione ImmutableMap di Google Collections] (http://stackoverflow.com/questions/3810738/google-collections-immutablemap-iteration-order) – Barett