在java中获取模式值 [英] Get mode value in java
本文介绍了在java中获取模式值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道如何从数组中获取模式值?例如,如果我有一个数字不同的数组,我如何使用Java来搜索哪个数字最多?
Any know how can I get the mode value from an array? For example, if I have a array with difference number, how can I use Java to search out which number is appears the most?
推荐答案
与O(n ^ 2)相反,在O(n)中完成。需要长度> 0的数组。
Completes in O(n) as opposed to O(n^2). Requires arrays of length > 0.
public static int getMode(int[] values) {
HashMap<Integer,Integer> freqs = new HashMap<Integer,Integer>();
for (int val : values) {
Integer freq = freqs.get(val);
freqs.put(val, (freq == null ? 1 : freq+1));
}
int mode = 0;
int maxFreq = 0;
for (Map.Entry<Integer,Integer> entry : freqs.entrySet()) {
int freq = entry.getValue();
if (freq > maxFreq) {
maxFreq = freq;
mode = entry.getKey();
}
}
return mode;
}
这篇关于在java中获取模式值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文