java中用for循环求一个数组中出现最多次数的元素

 我来答
侠们figo
2015-08-19 · TA获得超过152个赞
知道小有建树答主
回答量:246
采纳率:50%
帮助的人:91.2万
展开全部

也就是求众数

public static double mode(double[] array) {
  Arrays.sort(array);
  int count = 1;
  int longest = 0;
  double mode = 0;
  for (int i = 0; i < array.length - 1; i++) {
   if (array[i] == array[i + 1]) {
    count++;
   } else {
    count = 1;//如果不等于,就换到了下一个数,那么计算下一个数的次数时,count的值应该重新符值为一
    continue;
   }
   if (count > longest) {
    mode = array[i];
    longest = count;
   }
  }
  System.out.println(longest);//打印出这个数出现的次数已判断是否正确
  return mode;
 }



调用这个方法就可以了

遗忘灬诺崇
2015-08-19 · TA获得超过303个赞
知道小有建树答主
回答量:276
采纳率:90%
帮助的人:188万
展开全部
Map<Integer, Integer> m = new HashMap<Integer, Integer>();
// key:Integer(int)(数组元素的类型)Value:Integer(次数)
int[] a = new int[20];// 给a赋值
a[0] = 1;
a[1] = 2;
for (int i = 0; i < a.length; i++) {
if (m.get(a[i]) == null) {
m.put(a[i], 1);// 如果这个元素第一次出现
} else {
m.put(a[i], m.get(a[i]) + 1);// 重复则+1
}
}
int max = 0;int id=0;
Set<Integer> key=null;
for (int i = 0; i < m.size(); i++) {
if (m.get(i) > max) {
max = m.get(i);// 获取最大次数
id=i;
key = m.keySet();
}
}
System.out.println("出现最多的是:" + key.toArray()[id]);
System.out.println("出现最多次数:" + max);
结果:
出现最多的是:0
出现最多次数:18
望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-08-19
展开全部
		// 测试数组
int[] array = {2,4,6,8,2,5,8,2,10};

HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();

for (int i : array) {
hashMap.put(i, hashMap.get(i) == null ? 0 :hashMap.get(i)+1);
}

Set<Integer> keySet = hashMap.keySet();

int maxKey = 0;
int maxValue = 0;

for (Integer integer : keySet) {
if(hashMap.get(integer) > maxValue){
maxKey = integer;
maxValue = hashMap.get(integer);
}
}

System.out.println(maxKey);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式