2010-07-27 4 views
0

Donc, c'est probablement une question stupide, mais j'ai un mappage d'identifiants uniques à des valeurs uniques. Parfois, je veux la valeur d'un certain ID, parfois je veux connaître l'ID d'une certaine valeur. Je recherche plus que je ne modifie la collection. Je me demande s'il y a une structure de données spéciale qui a du sens ici, ou si je devrais simplement conserver deux copies de la collection (qui n'est jamais super grande) - une clé par ID, et une clé par valeur.La structure de données pour quand la clé et la valeur sont également "importantes"

Merci!

Répondre

1

La conservation de deux copies de la collection est la solution canonique.

Notez que les deux directions peuvent utiliser différents types de collection, le cas échéant (par exemple des tables de hachage avec différentes fonctions de hachage, une table de hachage et un arbre équilibré, etc.).

1

Quelque chose comme Google BiMap.

+1

Entré ici pour publier ce message. 'BiMap map = new HashBiMap (); map.put (1, "Bonjour"); Entier id = map.inverse(). Get ("Bonjour"); '. Mais à peu près l'implémentation est en fait 2 HashMaps maintenues sur chaque put(). – Strelok

Questions connexes