2014-02-24 76 views
0

的價值我的地方哈希映射:遞增一個HashMap的Java

HashMap <String, Integer> places = new HashMap <String, Integer>(); 
places.put("London",0); 
places.put("Paris",0); 
places.put("dublin",0); 

在這個地方我有一個地方的一個關鍵和那個地方的文字出現的次數的值。

說我有一個文本:

  1. iloveLondon
  2. IamforLondon
  3. allaboutParis

這也存儲在一個HashMap:

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

我要檢查條件語句,如果該位置是在文本(其中大寫和小寫被忽略:

for (String p: places): 
{ 
    for(String t : text): 
     if t.tolowercase().contains(p.tolowercase()) 
     { 
     //then i would like to increment the value for places of the places hashmap 
     } 
} 

在這個例子中,輸出應該是: 倫敦,2 巴黎,1 都柏林,0

我得到了一切,除了輸出值並增加它,有什麼建議嗎?

+4

將值替換爲值加1。 –

+0

...或使用可變的整數類作爲值(例如,JDK帶來'AtomicInt')。 – qqilihq

+0

哪個值?我應該替換 –

回答

0

要增加值,所有你需要做的是:

places.put("London",places.get("London")+1); 

如果地圖不包含「倫敦」,那麼get會返回一個空,來處理你需要做的情況下:

Integer value = places.get("London"); 
if (value == null) { 
    value = 1; 
} else { 
    value += 1; 
} 

places.put("London", value); 
+0

這給出了一個空指針異常 –

+0

增加了一些信息。 –

+0

@ Pro-grammer - 那麼,什麼是空? –