Редактировать: теперь правильно объяснил проблему.
У меня есть хэш-карта, где я хочу хранить наборы слов, видимых вместе (ключ), и строки, в которых они были видны вместе (значение).Это структура, которую я придумал:
HashMap<HashSet<String>, HashSet<Integer>> hm= ...
для входных данных:
манго, банан, яблоко
яблоко, банан
персик, морж
морж, персик
Пока я это читаю,построчно я создаю новые временные ключи (хэш-наборы, еще не вставленные в хэш-карту) из комбинации слов в строке.Каждый временный ключ является хэш-набором поднабора слов в строке.Если в моем hashmap уже существует временный ключ, который я проверяю с помощью
if(hashmap.containsKey(hashset))
, я просто добавляю новую строку к соответствующему значению этого ключа, если нет, я делаю новую запись в hashmap и заботлюсь оэто.
Ни в коем случае я не могу изменить существующий ключ.Я только обновляю их соответствующие значения в hasmmap.
мой hashmap в конце чтения файла должен выглядеть примерно так
[apple, banana] = [1,2]
[персик, морж] = [3,4]
...
проблема в том, что
if(hashmap.containsKey(hashset))
кусок кода не 'всегда обнаруживать существующие ключи.Почему это?Разрешена эта структура?
Спасибо