How to calculate mean, median, mode and range from a set of numbers

后端 未结 7 1566
闹比i
闹比i 2020-12-07 13:34

Are there any functions (as part of a math library) which will calculate mean, median, mode and range from a set of numbers.

7条回答
  •  -上瘾入骨i
    2020-12-07 13:49

    public class Mode {
        public static void main(String[] args) {
            int[] unsortedArr = new int[] { 3, 1, 5, 2, 4, 1, 3, 4, 3, 2, 1, 3, 4, 1 ,-1,-1,-1,-1,-1};
            Map countMap = new HashMap();
    
            for (int i = 0; i < unsortedArr.length; i++) {
                Integer value = countMap.get(unsortedArr[i]);
    
                if (value == null) {
                    countMap.put(unsortedArr[i], 0);
                } else {
                    int intval = value.intValue();
                    intval++;
                    countMap.put(unsortedArr[i], intval);
                }
            }
    
            System.out.println(countMap.toString());
    
            int max = getMaxFreq(countMap.values());
            List modes = new ArrayList();
    
            for (Entry entry : countMap.entrySet()) {
                int value = entry.getValue();
                if (value == max)
                    modes.add(entry.getKey());
            }
            System.out.println(modes);
        }
    
        public static int getMaxFreq(Collection valueSet) {
            int max = 0;
            boolean setFirstTime = false;
    
            for (Iterator iterator = valueSet.iterator(); iterator.hasNext();) {
                Integer integer = (Integer) iterator.next();
    
                if (!setFirstTime) {
                    max = integer;
                    setFirstTime = true;
                }
                if (max < integer) {
                    max = integer;
                }
            }
            return max;
        }
    }
    

    Test data

    Modes {1,3} for { 3, 1, 5, 2, 4, 1, 3, 4, 3, 2, 1, 3, 4, 1 };
    Modes {-1} for { 3, 1, 5, 2, 4, 1, 3, 4, 3, 2, 1, 3, 4, 1 ,-1,-1,-1,-1,-1};

提交回复
热议问题