Структура данных отображения один к одному (A,B) с getKey(B) в O(1)?

Первоначально этот вопрос был неправильно сформулирован, см. EDIT ниже. Я оставлю его для контекста.

Я думал об умных способах построения биективного ( т. е. отображение "один к одному". Отображение функции A->B (многие к одному) - это в основном то, что делает HashMap(A,B). Если бы я сейчас хотел иметь структуру данных, которая реализует что-то "один к одному", один с contains() в O (1), было бы что-то в стандартных библиотеках Java, которые я мог бы использовать? Имейте в виду, мне это сейчас ни для чего не нужно, это было просто то, о чем я недавно думал и не мог Я не могу придумать структуру данных для, поэтому ответы не торопятся. Есть ли такой класс? Если нет, то как вы думаете, почему это происходит?

мне не помог.

РЕДАКТИРОВАТЬ: Мой вопрос был плохо сформулирован, поэтому требуется некоторое объяснение.

Я имел в виду «обратное» отображение B->A. HashMap (A, B) содержит (A) и содержит (B) как в O (1), так что я даже не это имел в виду, извините за путаницу. Я имел в виду, существует ли сопоставление структуры данных A <-> B, которое имеет getValue (A) и getKey (B) в O (1)?

Я понимаю, что это можно сделать с помощью двух HashMaps (A,B) и (B,A), которые содержат одно и то же отношение, но я чувствую, что должна быть одна структура данных, которая обрабатывает это без необходимости делать это " вручную".

8
задан G. Bach 22 June 2012 в 19:37
поделиться