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

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

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+"]");
    }
}

下用map将值当成key,每次先get,如果有值,就+1,没有就put;

然后遍历就可以了

循环遍历,相同的加1