2011-01-23 57 views
2

有沒有一個很好的類可以計算java中特定字符串的出現次數?我想保留一個名稱列表,然後爲每個名稱創建唯一的電子郵件地址。對於姓氏的每次出現,我想將關聯的數字加1。例如:如果我有三個姓Smith的人,我想他們的地址是smith1 @(地址),smith2 @(地址)和smith3 @(地址)。我看到一個類「Map」,但我似乎無法正確初始化它。有沒有我可以用來保存一個字符串列表及其出現的類?計算Java中字符串的出現次數

+0

看看這個問題的答案http://stackoverflow.com/questions/4363061/count-number-of-occurences-from-a-text-file-using-map/4363140#4363140 – CoolBeans 2011-01-23 20:26:51

回答

3

Map將是一個可行的數據結構,如果你只是想計算給定姓氏的電子郵件數量。該鍵將是一個字符串(姓氏),並且該值將是一個整數(出現次數)。

你實例化,如下所示:

Map<String, Integer> nameOccurrences = new HashMap<String, Integer>(); 

要將值添加到地圖:

nameOccurrences.put("Smith", 1); 

要檢查的名稱是地圖:

if (nameOccurrences.containsKey("Smith")) { ... } 

要從地圖上獲取價值:

Integer occurrences = nameOccurrences.get("Smith"); 

請注意,具有不同大小寫的名稱將被視爲不同的鍵。如果你需要忽略大小寫,你必須做一些操作,比如在把鍵添加到地圖之前使鍵全部大寫。

1

Bag是您正在查找的數據結構。 Multiset是來自google-guava庫的Bag實現。

+1

似乎因爲他/她不知道HashMap是什麼。但我的2美分。 – Mike 2011-01-23 20:20:59

+0

這兩個都不會幫助,因爲它們只計算出現次數,但實際上並沒有保存多個項目。 – 2011-01-23 20:22:13

相關問題