La mia comprensione di Multiset è un set con frequenza, ma posso sempre usare Map per rappresentare la frequenza, c'è un altro motivo per usare Multiset?Guava MultiSet vs Mappa?
17
A
risposta
31
Vantaggi di un Multiset<E>
nel corso di un Map<E, Integer>
:
- Nessun codice speciale richiesto quando si aggiunge un elemento che non è già nella collezione.
- Metodi per gestire direttamente il conteggio degli elementi:
count(E)
,add(E, int)
, ecc. - L'intenzione del codice è più chiara. A
Multiset<E>
ovviamente associa gli elementi ai loro conteggi. UnMap<E, Integer>
potrebbe mappare gli elementi a numeri interi arbitrari.
Consulta anche:
8
Per me, il punto più importante che imposta Multiset
a parte un Map
è che si tratta di un Collection
: hai appena messo roba in esso e puoi ottenere dei conteggi più tardi. Concettualmente si adatta ai casi d'uso per i quali è stato progettato laddove non lo è un Map
. Per quei casi d'uso, uno Map
è solo un hack che kinda-kind funziona bene poiché Java non fornisce nulla di più appropriato.
Problemi correlati
- 1. Mappa in Mappa in Guava
- 2. benchmark guava cache vs ehcache
- 3. Tabella-cast vs cast-multiset in pl-sql
- 4. annotazioni vs. interfaccia in Guava EventBus
- 5. Multiset cancellare ultimo elemento
- 6. multiset in C++
- 7. Mappa Hadoop/Riduci vs Mappa incorporata/Riduci
- 8. guava ha un'implementazione mappa che richiede funzioni hash/uguali personalizzate?
- 9. jQuery mappa vs.
- 10. Requirejs: percorsi vs mappa
- 11. mappa multimappa vs set
- 12. Futures - mappa vs flatmap
- 13. inizializzazione di Guava ImmutableMap
- 14. mappa vs hash_map in C++
- 15. Guava MultiMap e ConcurrentModificationException
- 16. "Uscita mappa byte materializzati" vs "byte di output mappa"
- 17. std :: multiset :: iterator = NULL non più valido?
- 18. Esistono implementazioni di multiset per .Net?
- 19. Seleziona elemento con occorrenza massima in Multiset
- 20. Servizio riavviabile utilizzando Guava
- 21. Ordinamento di un Guava BiMap
- 22. mappa vs unordered_map per pochi elementi
- 23. mappa vs lista; perché un comportamento diverso?
- 24. collezioni java vs mappa nel framework collezioni
- 25. Guava Ticker cache scadono
- 26. Guava: java.lang.NoClassDefFoundError - com.google.common.collect.HashBiMap
- 27. Implementazione Trie in Guava?
- 28. Test unità Guava EventBus
- 29. Guava caching refreshAfterWrite confusion
- 30. Guava: Dov'è CharEscaper?
Oltre ad essere probabilmente più efficiente dell'implementazione, Multiset rende più chiaro ciò che si sta tentando di fare ed è più difficile rovinare. In genere, con una mappa, hai a che fare con un sacco di cose: controllare se la chiave è già nella mappa, occuparsi del conteggio zero e di tutti i tipi di attività complicate. Multiset funziona. –