2010-04-17 13 views

risposta

4

Non esiste una raccolta multimap incorporata in Java. Per risolvere questo è possibile mappare ad ogni chiave un elenco di valori: Map<String, List<String>>, ad esempio. Altrimenti ci sono librerie di terze parti con multimaps implementati - here è uno di questi.

7

È possibile esaminare Google Collections. Ha implementazioni multiple per MultiMap.

+2

In particolare. la classe TreeMultimap di Google Collections include un metodo asMap() che restituisce una SortedMap. È quindi possibile chiamare metodi come SortedMap.subMap() per recuperare i mapping per un intervallo di chiavi. –

+2

Google Collections è ora [Guava] (http://code.google.com/p/guava-libraries/) – Muhd

1

C'è un semplice trucco attorno alla creazione di collezioni ordinabili multimap in java ... Usa la serie di dati TreeMap e per le chiavi inserisci il tasto * 10^4 + contatore. In questo modo si memorizzano i valori chiave duplicati nella mappa (aggiungendo contatore non sono effettivamente duplicati, quindi è possibile memorizzare in treeMap, ma si sa di non utilizzare le ultime quattro cifre dei valori della chiave intera), tuttavia il set di dati è essere ordinati utilizzando i valori chiave originali. Si noti che a seconda di quanto grande è il set di dati, è possibile che si desideri regolare 10^n per assicurarsi che sia più grande del numero di voci nei dati.

Problemi correlati