Java - Обмен значениями и ключами на одной карте?

Я делаю программу шифрования и расшифровки для своего класса программирования, однако я на год впереди группы, поэтому я подумал, что упрощу вещи, используя то, что я узнал в прошлом году. Я решил использовать карту деревьев. Что делает программа, она берет в файле, читает первую строку, которая содержит данные шифрования того, как буквы будут закодированы. Он имеет формат "A- > B", "B- > C", "C- > A" и т.д., А затем пустая строка для строки 2, а третья строка содержит сообщение. Я использовал рег. выражения для удаления char Мне не нужно в текстовом файле, сопоставлены Ключи с первой буквой, а затем эти значения присваиваются стрелке. (A - ключ, B - значение). Так что если сообщение ABC, оно станет BCA. Мне интересно, как для дешифрования, если бы был способ легко перевернуть Ключи и Значения туда, где, если бы вход был, A key = B val, он поменялся бы на B key = A val. Просто ищите более простой метод, чем то, что я сейчас делаю с коллекциями и итераторами.

2 ответа

Просто ищет более простой метод, чем то, что я сейчас делаю с коллекциями и итераторами.

Это единственный способ сделать это, потому что на общей карте может быть несколько сопоставлений клавиш с одним и тем же значением, и в этом случае не было бы способа автоматически определить, что делать с дублированием ключи в результирующей карте.


Похоже, вам нужна двунаправленная карта, что-то вроде Guava BiMap

licensed under cc by-sa 3.0 with attribution.