Comment stocker plusieurs valeurs d'une clé (java)
Je recherche pour un de discbased, où je peux stocker plusieurs paires clé-valeur.
Les données essentiellement ressemble à ceci:
(1 , value_1)
(2 , value_2)
J'ai donc pensé à utiliser HashMap. Malheureusement cela ne fonctionne pas pour moi, parce que plusieurs valeurs d'une clé peut se produire.
(Dans l'exemple ci-dessus:
(1 , value_2)
peut-être une autre entrée )
Est-il possible de performantly le stockage de ces données, à l'exception de la création d'une Liste avec un nouvel Objet ou quelque chose comme ça.
get(1)
doit retourner valeur_1 et value_2 comme une liste ou quelque chose de semblable.
Merci d'avance
OriginalL'auteur Stephan | 2011-09-08
Vous devez vous connecter pour publier un commentaire.
Je pense que la structure de données que vous cherchez est dans google goyave bibliothèque, MultiMap. Voir http://guava-libraries.googlecode.com/svn-history/r13/trunk/javadoc/com/google/common/collect/Multimap.html.
En gros, c'est un
Map<K,Collection<V>>
mais avec un facile à utiliser l'interface.OriginalL'auteur Kevin
Si les clés sont des nombres entiers et les valeurs sont par exemple des chaînes, et des valeurs appartenant à l'une des clés sont différents, vous pouvez utiliser, par exemple, la plaine de Java structure:
OriginalL'auteur Jiri Kriz
Vous pouvez utiliser
HashMap<Integer,Set<T>>
ouHashMap<Integer,List<T>>
, oùT
est le type devalue_1
,value_2
etc.Fondamentalement,
get
permettrait de faire ce que vous voulez hors de la boîte. L'ajout d'éléments est un peu plus lourd; vous pourriez écrire un court fonction wrapper pour le rendre plus agréable.OriginalL'auteur NPE