統計數組中各個數字出現的個數

在筆試和麪試中經常會遇到這樣的問題,統計字符串中各個字符出現的個數,

對於統計頻率一般通常的做法是利用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類數據結構更爲方便,省略了一系列的確定元素位置的操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章