2012-11-09 50 views
0

我想要一個包含一些(可能很多)HashMap的矢量,其中有一個字符串作爲鍵和一個整數作爲值。我怎麼能檢查我的Hashmaps矢量是否已經包含某個特定的鍵,如果是,則將相應的鍵的值增加1?使用Java中的地圖矢量

我試圖完成的是計算單詞在文檔中出現的次數。我的想法是,我可以使用HashMap來存儲單詞出現的次數。但是我想要檢查我的向量是否已經在向我的向量添加新地圖之前包含具有給定單詞的地圖。如果我的矢量DOES包含具有給定單詞的映射,則增加值字段(在本例中爲numOfTimesOccurredSoFar)。

這可能嗎?

+0

是的。你只需要一張地圖

+1

爲什麼你需要一個HashMap的Vector?從你的描述中,單個HashMap將是一個更好的解決方案。這也可以避免嘗試操縱整個HashMap矢量時遇到的複雜情況。 –

回答

2

除非我誤解你想要做的事情,否則當你可以使用單個映射將單詞映射到單詞數量時,我沒有理由將映射存儲在向量中。 對於每個單詞,檢查映射是否將該單詞作爲關鍵字,如果是,則將1添加到映射到該單詞的值。如果該單詞尚未出現在地圖中,請添加一個新的鍵值對。

0
import java.util.Map; 
import java.util.TreeMap; 
public class So13315440 { 
    void add(String word) { 
     if(map.containsKey(word)) 
      map.put(word,map.get(word)+1); 
     else map.put(word,1); 
    } 
    void run() { 
     add("foo"); 
     add("foo"); 
     add("bar"); 
     System.out.println(map); 
    } 
    public static void main(String[] args) { 
     new So13315440().run(); 
    } 
    Map<String,Integer> map=new TreeMap<String,Integer>(); 
}