編輯:現在正確解釋問題。我可以將HashSets作爲HashMap中的鍵嗎?如果不是,建議替代方案
我有一個散列圖,我想存儲在一起看到的單詞集合(鍵)和它們在一起看到的行(值)。這是我想出了一個結構:
HashMap<HashSet<String>, HashSet<Integer>> hm= ...
爲輸入:
芒果,香蕉,蘋果
蘋果,香蕉
桃,海象
海象,桃子
當我一行一行閱讀這篇文章時,我從行中的單詞組合中創建了新的臨時密鑰(尚未插入到散列表中的哈希集)。每個臨時密鑰都是該行中單詞的子集的哈希集。如果臨時密鑰在我的HashMap中,已經存在我的
if(hashmap.containsKey(hashset))
檢查我只需將新的行添加到該鍵的對應值,如果沒有,我做的HashMap中的新條目,並照顧它。
在任何時候我都不會更改現有的密鑰。我只更新了它們在hasmmap中的相應值。
我的HashMap,在讀取文件末尾,應該是這個樣子
[蘋果,香蕉] = [1,2]
[桃,海象] = [3,4]
...
的問題是,
if(hashmap.containsKey(hashset))
一段代碼不ALW ays檢測現有密鑰。爲什麼是這樣?這個結構不允許嗎?
謝謝
您是否嘗試過它呢? – pcalcao 2012-03-19 16:23:27
第5行不會映射到「桃子,海象」嗎?那麼芒果呢? – Thomas 2012-03-19 16:25:34
@pcalcao是的。它表現奇怪。有時它會檢測到該設置存在,有時不會。我只想驗證HashMap是否可以處理哈希集有一個關鍵。 – student101 2012-03-19 16:25:45