2010-08-20 5 views
1

Y at-il une structure de données qui peuvent remplacer les deux cartes suivantes:cartographie et inverser la cartographie

Dictionary<TypeA, TypeB> map; 

Dictionary<TypeB, TypeA> reverse_map; 

pour que je serai toujours en mesure d'obtenir TypeB de TypaA et TypeA de TypeB? Ma solution actuelle nécessite l'ajout de key-> value à map 1 et value-> key à map 2.

Répondre

1

Ce dont vous avez besoin s'appelle une 'Carte bidirectionnelle' comme Google BiMap qui fait partie de Google Collections (bibliothèque java).

Un thread SO associé est here. Ce thread a une implémentation java TwoWayHashmap simple publiée par moi. Cela utilise deux cartes pour simuler une carte bidirectionnelle. Bien que le code soit spécifique à Java, je pense qu'il serait facile de généraliser cela en tant que structure de données.