假设我有一系列像
这样的双打[1.2,1.2,3.0,2.7,1.2]
我如何实现一种能够返回最频繁出现的元素频率的方法?在这种情况下,我只想制作一个为双1.2返回3的方法。
答案 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;
}