Этот вопрос был изначально ошибочным, см. EDIT ниже. Я оставлю это для контекста.Структура данных сопоставления «один к одному» (A, B) с getKey (B) в O (1)?
Я думал о умных способах построения биективного (то есть взаимно однозначного) отображения. Отображение функции A-> B (много-к-одному) является в основном тем, что делает HashMap (A, B). Если бы мне захотелось иметь структуру данных, которая реализует что-то индивидуально с contains() в O (1), будет ли что-то в стандартных библиотеках java, которые я мог бы использовать? Имейте в виду, мне это ни для чего не нужно прямо сейчас, это было то, о чем я думал недавно, и не мог придумать структуру данных, поэтому ответы не спешат. Есть ли такой класс? Если нет, что вы думаете, почему?
Все, что я мог найти, это вещи, связанные с спящим режимом, это не помогло мне.
EDIT: Мой вопрос был взломан, поэтому необходимо объяснение.
То, что я имел в виду, было «обратным» отображением B-> A. HashMap (A, B) содержит (A) и содержит (B) как в O (1), так что это даже не то, что я имел в виду, извините за путаницу. То, что я имел в виду, было, есть ли сопоставление данных данных A < -> B, которое имеет getValue (A) и getKey (B) в O (1)?
Я понимаю, что это можно сделать с помощью двух HashMaps (A, B) и (B, A), которые поддерживаются с тем же отношением, но я чувствую, что должна быть одна структура данных, которая обрабатывает это, не делая этого "вручную".
Будет ли просто расширять класс A и добавлять свойство, которое возвращает B, для вас? –
Итак, что вы хотите, чего HashMap не делает? Он может использоваться для сопоставлений один к одному. –
@PeterLawrey - это HashMap.contains в java O (1)? –