Java实现求一组数的众数(反复测试有效)

思路:根据出现次数最多的找众数,具体实现方法在代码里有注释

代码代写:2248557717
//求最大值
    public static int getMax(List<Integer> list) {
    
    
        int max = 0;
        for (int i = 0; i < list.size(); i++) {
    
    
            if (max < list.get(i)) {
    
    
                max = list.get(i);
            }
        }
        return max;
    }
//求每一个属性的众数
    public static List<Double> getModeIris(double[] array) {
    
    
        Map<Double, Integer> map = new HashMap<>();
        Set<Map.Entry<Double, Integer>> set = map.entrySet();
        List<Integer> list = new ArrayList<>();
        List<Double> listMode = new ArrayList<>();
        //统计元素出现的次数,存入Map集合
        for (double item : array) {
    
    
            if (!map.containsKey(item)) {
    
    
                map.put(item, 1);
            } else {
    
    
                map.put(item, map.get(item) + 1);
            }
        }
        //将出现的次数存入List集合
        for (Map.Entry<Double, Integer> entry : set) {
    
    
            list.add(entry.getValue());
        }
        //得到最大值
        int max = Iris.getMax(list);
        //根据最大值获取众数
        for (Map.Entry<Double, Integer> entry : set) {
    
    
            if (entry.getValue() == max) {
    
    
                listMode.add(entry.getKey());
            }
        }
        for (Double item:listMode) {
    
    
            System.out.println(item);
        }
        return listMode;
    }
 public static void main(String[] args) {
    
    
        double[] arrays={
    
    3.23,3.23,3.23,3.22,3.22,3.22,3.2};
        System.out.println(Iris.getModeIris(arrays));
    }

测试结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有问题QQ:2248557717私聊

猜你喜欢

转载自blog.csdn.net/dwjdj/article/details/109158502