统计数组中各个数字出现的个数

在笔试和面试中经常会遇到这样的问题,统计字符串中各个字符出现的个数,

对于统计频率一般通常的做法是利用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类数据结构更为方便,省略了一系列的确定元素位置的操作

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