2010-08-20 2 views
1

Есть структура данных, которая может заменить следующие две карты:Mapping и обратное отображение

Dictionary<TypeA, TypeB> map; 

Dictionary<TypeB, TypeA> reverse_map; 

так, что я всегда буду иметь возможность получить TypeB от TypaA и TypeA от TypeB? Мое текущее решение требует добавления ключа-> значения для сопоставления 1 и значения-> для сопоставления 2.

ответ

1

Что вам нужно, так называется «Двунаправленная карта», например, BiMap Google, который является частью Google Collections (java library).

Связанная нить SO равна here. В этом потоке есть простая реализация JavaWareHashmap java. Это использует два Карты для имитации двухсторонней карты. Хотя код java специфичен, я думаю, что было бы легко обобщить его как структуру данных.

Смежные вопросы