Редактировать: теперь проблема правильная.Могу ли я иметь HashSets в качестве ключей в HashMap? Предложите альтернативу, если нет
У меня есть hashmap, где я хочу хранить наборы слов, замеченных вместе (ключ), и линии, в которых они были замечены вместе (значение). Это структура, я придумал:
HashMap<HashSet<String>, HashSet<Integer>> hm= ...
для входов:
манго, банан, яблоко
яблоко, банан
персик, морж
морж, персик
Поскольку я читаю это, строчно, я создаю новые временные ключи (хешеты, которые еще не вставлены в hashmap) из сочетания слов в строке. Каждый временный ключ является хеш-множеством подмножества слов в строке. Если временный ключ уже существует в моем HashMap, которые я проверить,
if(hashmap.containsKey(hashset))
я просто добавить новую строку в соответствующее значение этого ключа, если нет, то я делаю новую запись в HashMap и заботиться о нем.
Ни в коем случае не могу изменить существующий ключ. Я только обновляю их соответствующие значения в hasmmap.
мой HashMap, в конце чтения файла, должен выглядеть примерно так
[яблоко, банан] = [1,2]
[персик, морж] = [3,4]
...
проблема заключается в том, что
if(hashmap.containsKey(hashset))
кусок кода не ALW ays обнаруживают существующие ключи. Почему это? Не разрешена ли эта структура?
Спасибо
вы пробовали это? – pcalcao
Не будет ли отображаться строка 5 на «персик, морж»? А как насчет «манго»? – Thomas
@pcalcao да. он ведет себя странно. иногда он обнаруживает, что набор существует, иногда нет. Я просто хочу, чтобы проверка того, может ли HashMap обрабатывать hashset, имеет ключ. – student101