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