编辑:已经更好地解释了问题。
我有一个哈希映射表,想要存储一起出现的单词集合(键)和它们在哪些行中出现过(值)。这是我想出的结构:
HashMap<HashSet<String>, HashSet<Integer>> hm= ...
对于输入:
芒果,香蕉,苹果
苹果,香蕉
桃子,海象
海象,桃子
我逐行阅读,从每行中的单词组合创建新的临时键(尚未插入到哈希表中的哈希集)。 每个临时键都是行中一部分单词的哈希集。 如果一个临时键已经存在于我的哈希表中,我会进行检查,这可以通过
if(hashmap.containsKey(hashset))
我会将新行添加到该键的相应值中,如果没有,则在哈希映射表中创建一个新条目并进行维护。
我从未更改现有的键。我只更新它们在哈希映射表中对应的值。
读取完文件后,我的哈希映射表应该类似于:
[apple, banana]=[1,2]
[peach, walrus]=[3,4]
...
问题在于
if(hashmap.containsKey(hashset))
代码片段并不总是能够检测到已存在的键。为什么会这样?这种结构不被允许吗?
谢谢