Могу ли я получить HashSets в качестве ключей в HashMap? Предложите альтернативу, если нет

Изменить: теперь правильно объяснил проблему.

У меня есть хэш-карта, где я хочу хранить наборы слов, видимых вместе (ключ), и строки, в которых они были замечены вместе(значение) Вот структура, которую я придумал:

HashMap<HashSet<String>, HashSet<Integer>> hm= ...

для входных данных:

  1. манго, банан, яблоко

  2. яблоко, банан

  3. персик, морж

  4. морж, персик

] Когда я читаю это, строка за строкой, я создаю новые временные ключи (хеш-наборы, еще не вставленные в hmap) из сочетания слов в строке. Каждый временный ключ представляет собой хэш-набор подмножества слов в строке. Если в моей хэш-карте уже существует временный ключ, который я проверяю с помощью

if(hashmap.containsKey(hashset))

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

Ни в коем случае нельзя менять существующий ключ. Я только обновляю их соответствующие значения в hasmmap.

моя хеш-карта в конце чтения файла должна выглядеть примерно так

[яблоко, банан]=[1,2]

[персик, морж]=[3,4]

...

проблема в том, что часть кода

if(hashmap.containsKey(hashset))

не всегда обнаруживает существующие ключи. Почему это? Эта структура не разрешена?

Спасибо

5
задан Brad Fox 3 May 2012 в 18:22
поделиться