2010-09-12 2 views
1

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

ответ

1

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

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

+0

самих букв должны быть всеми петельными так, если отображаются B-то должны были бы быть сопоставлено с А. Таким образом, я предполагаю, У меня есть самый эффективный способ, тогда спасибо в любом случае! – Samich

1

Похоже, вы хотите двунаправленную карту, что-то вроде гуавы BiMap