andrew9991 2016-05-03 09:12 采纳率: 100%
浏览 2669
已采纳

求教一下JAVA怎么判断Array中数出现的次数

比如有组十个数的array 判断array中出现次数最多的数 然后输出这个数,
如果出现次数最多的不是唯一的就返回-1 就是比如两个数都是出现3次 都最多这种情况
不知道怎么写

  • 写回答

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+"]");
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?