用JAVA代码编写:n个数查出出现次数最多的数

最好是写上代码,并附有说明,本人是菜鸟,比较笨,呵呵
哪位高手帮帮忙了,谢谢!!!

public class Test {
public static void main(String[] args) {
int[] n = { 1, 1, 1, 1, 2, 22,2,2,2,2,2,2,2,2,2,2,2,2, 3, 4, 5, 6, 1, 1, 1,1,12, 1,1,1,13 ,0};
//设置中间数用来比较
int m = 0;
//排序,升序
Arrays.sort(n);
//保存结果map,n的元素为key,出现次数为value
Map nums = new HashMap();
//首先中间数出现次数为0
nums.put(m, 0);
//循环,当某个数已经在map里时,将次数加一
for (int i = 0; i < n.length; i++) {
if (m == n[i]) {
int v = (Integer) nums.get(m);
v++;
nums.put(m, v);
} else {
nums.put(n[i], 1);
}
m = n[i];
}
//遍历得到最多次数的数
Iterator iterator = nums.keySet().iterator();
int maxNumber = 0;
int maxValue = 0;
while(iterator.hasNext()){
int key = (Integer)iterator.next();
int value = (Integer)nums.get(key);
if(value>maxNumber){
maxNumber = value;
maxValue = key;
}
}
System.out.println("出现次数最多的数为:"+maxValue+",出现次数为:"+maxNumber);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-25
需要用Map