統計字符串數組中每個字符串所出現的次數


說明:

1.如題所示,這種類型這我們做項目的時候經常遇到,是非常常見的類型。

2.這里面向的對象是String 類型。對於其他類型包括自定義的對象也很容易移植,但是對於String和其他基本變量類型由於可以進行大小比較,所以這些類型的數據可以排序后再統計其出現的次數,這樣可以用其他方法來進行統計。

過程:

1.字符串數組只遍歷一次。

2.設計一個Hash,用於保存Hash后的String值,和其出現的次數。可以用HashMap(key,value)來實現。

3.對於每一個string ,進行Hash處理。

4.輸出Hash。

類和方法設計:

類:StringSameCount.java

   - HashMap map;

/**

對於每一個String,插入Hash

**/

+hashInsert(String)

{

  String 已存在:map.put(string,value++);

  String不存在:map.put(string,1);

}

+HashMap getHashMap()

{

  return map;

}

 

最后的StringSameCount.java源代碼(測試可用)如下:

import java.util.HashMap;


public class StringSameCount {
private HashMap map;
private int counter; //用於統計 map中的value

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

/**
* 用於在hashmap中插入字符串
*
@param string
*/
public void hashInsert(String string){
if (map.containsKey(string)){
counter=(Integer)map.get(string);
map.put(string,++counter);
}
else{
map.put(string, 1);
}
}

public HashMap getHashMap(){
return map;
}
}


測試調用如下:

import java.util.HashMap;
import java.util.Iterator;

public class Main {
public static void main(String[] args) {
StringSameCount ssc=new StringSameCount();
ssc.hashInsert("ab");
ssc.hashInsert("bc");
ssc.hashInsert("ab");
ssc.hashInsert("ab");
ssc.hashInsert("bc");
ssc.hashInsert("bcd");
ssc.hashInsert("c");
HashMap map=ssc.getHashMap();
Iterator it =map.keySet().iterator();
String temp;
while(it.hasNext()){
temp=(String)it.next();
System.out.println(temp+"出現了"+map.get(temp)+"次");
}
//也可以直接輸出map;
System.out.println(map);

}
}

最后得到的輸出結果:

c出現了1次
bcd出現了1次
ab出現了3次
bc出現了2次
{c=1, bcd=1, ab=3, bc=2}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM