比如有组十个数的array 判断array中出现次数最多的数 然后输出这个数,
如果出现次数最多的不是唯一的就返回-1 就是比如两个数都是出现3次 都最多这种情况
不知道怎么写
求教一下JAVA怎么判断Array中数出现的次数
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答
- little_how 2016-05-03 09:45关注
public static void main(String[] args) {
int arr[] = {1,2,43,4,5,5,6,6,6,6,68,2,5,3,4,9,92,3,8,9,94,4,5,6};
Map map = new HashMap();
for (int key : arr) {
Integer v = map.get(key);
if (v == null) {
v = 1;
} else {
v = v.intValue() + 1;
}
map.put(key, v);
}Collection<Integer> values = map.values(); /** 计算出出现次数最大的值 */ int max = 0; for (Integer v : values) { max = Math.max(v, max); } /** 找出出现次数为该值的key */ boolean multi = false; int value = -1; Iterator<Integer> keys = map.keySet().iterator(); while (keys.hasNext()) { Integer key = keys.next(); Integer v = map.get(key); if (v.intValue() == max) { if (!multi) { value = key; multi = true; } else { /** 出现多个跳出循环 */ value = -1; break; } } } if (value == -1) { System.out.println("多个数出现次数一致"); } else { System.out.println("出现最多的值为["+value+"],出现次数为["+max+"]"); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 关于大棚监测的pcb板设计
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用