2017-05-03 42 views
0

所以我在理解這段代碼時遇到了一些困難。 for-each從數組中輸入字符串以及計數相同字符串數的計數器,但計數器如何執行此操作?使用計數器將數組插入到散列表中

什麼是獲取傳遞在對抗數:Integer count = map.get(nextString);

什麼做的if語句嗎?

 HashMap<String, Integer> map = new HashMap<>(); 

    for (String nextString : inArray) { 

     Integer count = map.get(nextString); 

     if (count == null) { 

     count = 1; 

     } else { 

     count = count + 1; 

     } 

     map.put(nextString, count); 

    } 
+0

究竟是什麼問題? –

+0

你知道Java HashMap是如何工作的嗎? –

回答

1
HashMap<String, Integer> map = new HashMap<String, Integer>(); 

這只是我們的初始化HashMap的,沒有什麼複雜的。

for (String nextString : inArray) { 

    Integer count = map.get(nextString); 

在這裏,我們正在尋找與我們(在這種情況下,從我們的陣列字符串)相關聯的

if (count == null) { 

     count = 1; 

因爲我們正在更新與發生給定的字符串,如果有我們的鍵,然後這個字符串尚未計入相關聯的值的次數的地圖,所以我們設置count 1因爲這是我們數組中第一次出現這個字符串。

} else { 

     count = count + 1; 

如果上述if語句沒有執行,這意味着有與字符串相關的一些價值,因此,我們可以只增加那麼它放回到地圖。

} 

    map.put(nextString, count); 

} 
+0

太棒了,謝謝你! – VICWICIV

+1

請修復懶惰的身份,而不是複製OP使用的那種混亂的樣式。 – GhostCat

+0

排序,謝謝指出。 –