2014-11-15 46 views
0

我目前在使用Java並使用散列表和鍵和值。Java Hashtable將所有密鑰設置爲相同的值

我想要做的是遍歷一個文件,並將每個單詞作爲一個關鍵字放入哈希表中,其中一定的概率應該初始化爲1 /總個體單詞。

目前我的代碼循環執行文件,併爲每個單詞做:map.put(word,0)。 (值被初始化爲0,因爲由於它仍然循環,所以我不知道單詞的總數量)。 在這個循環結束時,我希望在hashtable 1/map.size()中創建每個值,是否有一種簡單的方法可以做到這一點,而不必通過所有散列表鍵進行交互?

在此先感謝!

+1

您最好的選擇恕我直言:通過按鍵進行迭代。 –

+0

你爲什麼要將每個值初始化爲1 /(總字數)?一次出現100次的單詞是否與一次出現的單詞具有相同的概率? – Eran

+0

單詞我實際上是指不同語言中的兩個單詞的組合(「w1 w2」)。他們的概率都應該被平等地初始化,因爲我正在實施一種算法,以找到w1翻譯成w2的正確概率,並在每個訓練循環中更新概率。 – Bous

回答

0

你可以,如果你使用的是Java 8+使用replaceAll

map.replaceAll((k, v) -> 1.0/map.size()); 
相關問題