2 andrew9991 andrew9991 于 2016.05.03 17:12 提问

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

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

3个回答

w172087242
w172087242   Ds   Rxr 2016.05.03 17: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+"]");
    }
}
w172087242
w172087242 回复little_how: Map<Integer, Integer> map = new HashMap<Integer, Integer>();这句被csdn转义了
大约 2 年之前 回复
w172087242
w172087242 如果有帮助的话,希望能结帖
大约 2 年之前 回复
w172087242
w172087242   Ds   Rxr 2016.05.03 17:27

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

然后遍历就可以了

w172087242
w172087242 给你写段代码,稍等
大约 2 年之前 回复
u011415440
u011415440   2016.05.03 17:37

循环遍历,相同的加1

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
J2EE面试题之 java如何找出一个int数组中出现次数最多的数字以及出现次数?
代码如下: package test; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Test { public static void main(String[] args) { int
Java-实现找出数组中一个数字出现次数最多的数字
import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class Mytest { /** * @param args */ public static void main(Strin
java 统计数组中各元素出现的次数
package javatest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class NumOfEle { public static void main(St
Java给定一个字符串数组,判断每个字符出现次数
题目要求:给定一个字符串,判断每个字符出现多少次? 解决思路:利用Map的特性:即Map集合中如果两个key(键)值是一样相同的,那么,后放(put)入的值会将前面存在的value(值)替换掉,也就是覆盖了前面的value。 package com.zhj.www; import java.util.HashMap; import java.util.Map; public class Test...
数字在排序数组中出现的次数(Java实现)
本题为剑指offer面试题38 牛客网测试地址:https://www.nowcoder.com/questionTerminal/70610bf967994b22bb1c26f9ae901fa2 时间限制:1秒空间限制:32768K 统计一个数字在排序数组中出现的次数。 package go.jacob.day512; public class Demo
java中判断数组中元素出现的次数
如题所示:有 20 个 0-9 之间的数字,并统计 0-9 这 10 个数字分别出现了多少次? 解答思路:声明两个数组,一个是需要判断元素出现次数的数组,另一个就是存放元素个数的数组,分别如下: int num [] = {1,1,2,3,5,4,1,2,1,4,1,5,6,1,2,1,4,1,5,6}; int count [] = new int [10];
Java 中的检测输入的重复数据并计算重复次数
package xdl.day16; import java.util.HashMap; import java.util.Map; import java.util.Scanner; import java.util.Set; public class TestNumbelCnki { public static void main(String[] args) { // 检测给定的
java统计List中的元素重复出现的次数
package net.javaer.demo; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Se
java list统计某个元素出现的次数
int count = Collections.frequency(list, key); java提供了方法,但实现原理是for循环,所以在大数据量下不建议使用,或者你要判断某个key出现的次数是不是大于某个标准值,则先对list排序,然后分批次list进行调用此方法,满足就退出循环。
从一个数组中找出众数,及其出现的次数
$arr = [1, 4, 3, 3, 3, 4, 4, 4]; $maxCount = []; $len = count($arr); $zhongshu = ''; for($i=0; $i<$len; $i++) { $count = 0; for($j=0; $j<$len; $j++) { if($arr[$i] == $arr[$j])