跟踪双打数组中最常出现的元素

时间:2014-06-06 19:24:24

标签: java arrays data-structures

假设我有一系列像

这样的双打

[1.2,1.2,3.0,2.7,1.2]

我如何实现一种能够返回最频繁出现的元素频率的方法?在这种情况下,我只想制作一个为双1.2返回3的方法。

1 个答案:

答案 0 :(得分:0)

这是一个天真的方法应该可以解决这个问题:

public static int mostOccurances(double[] input) {
    Map<Double, Integer> map = new HashMap<>();

    // Go over the input and store in map
    for (double d : input) {
        Integer count = map.get(d);
        if (count == null) {
            map.put (d, 1);
        } else {
            map.put (d, count + 1);
        }
    }

    // Go over the map and return the maximum occurrence
    // assumption: if input is empty, it's OK to return 0
    int retVal = 0;
    for (int count : map.values()) {
        retVal = Math.max(retVal, count);
    }

    return retVal;
}