在筆試和麪試中經常會遇到這樣的問題,統計字符串中各個字符出現的個數,
對於統計頻率一般通常的做法是利用map類數據結構,key作爲原始元素的值,value作爲頻率
這裏使用hashmap實現
import java.util.HashMap;
public class CountChar {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]= {1,3,5,1,6,4};
HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int a:arr)
{
if(map.containsKey(a))
{
int val=map.get(a);
val++;
map.put(a, val);
}
else
{
map.put(a, 1);
}
}
for(int num:map.keySet())
{
System.out.println(num+":"+map.get(num));
}
}
}
這裏具有一些要點,一般遇到統計數字或者字符類的題,如果數字或者字符有個區間範圍,例如0-9,A-Z這種,我們還可以使用基礎的數組進行實現,根據這個範圍開闢數組,用於存放頻率,例如對於26個字母就更加方便,直接int arr[26]
這種題使用數組、Arraylist都可以做,但是使用map類數據結構更爲方便,省略了一系列的確定元素位置的操作