2010-04-17 17 views

Répondre

4

Il n'y a pas intégré dans la collecte de multimap en Java. Pour résoudre cela, vous pouvez mapper à chaque touche une liste de valeurs: Map<String, List<String>>, par exemple. Sinon, il existe des bibliothèques tierces avec des multimappes implémentés - here en fait partie.

7

Vous pouvez regarder dans Google Collections. Il a plusieurs implémentations pour MultiMap.

+2

En particulier. la classe Google Collections TreeMultimap inclut une méthode asMap() renvoyant une SortedMap. Vous pouvez ensuite appeler des méthodes telles que SortedMap.subMap() pour récupérer les mappages pour une plage de clés. –

+2

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

1

Il est un simple bidouille autour de la création multimap collections triables en java ... Utilisez le jeu de données TreeMap et pour les clés touche Entrée * 10^4 + compteur. De cette façon, vous stockez des valeurs de clé dupliquées dans la carte (en ajoutant le compteur, elles ne sont pas des doublons, donc vous pouvez stocker le dans treeMap, mais vous ne devez pas utiliser les quatre derniers chiffres de la clé entière) étant trié en utilisant vos valeurs de clé d'origine. Notez qu'en fonction de la taille de votre jeu de données, vous pouvez ajuster 10^n pour vous assurer qu'il est plus grand que le nombre d'entrées dans vos données.