也就是求众数
public static double mode(double[] array) {
Arrays.sort(array);
int count = 1;
int longest = 0;
double mode = 0;
for (int i = 0; i < array.length - 1; i++) {
if (array[i] == array[i + 1]) {
count++;
} else {
count = 1;//如果不等于,就换到了下一个数,那么计算下一个数的次数时,count的值应该重新符值为一
continue;
}
if (count > longest) {
mode = array[i];
longest = count;
}
}
System.out.println(longest);//打印出这个数出现的次数已判断是否正确
return mode;
}
调用这个方法就可以了
Map
// key:Integer(int)(数组元素的类型)Value:Integer(次数)
int[] a = new int[20];// 给a赋值
a[0] = 1;
a[1] = 2;
for (int i = 0; i < a.length; i++) {
if (m.get(a[i]) == null) {
m.put(a[i], 1);// 如果这个元素第一次出现
} else {
m.put(a[i], m.get(a[i]) + 1);// 重复则+1
}
}
int max = 0;int id=0;
Set
for (int i = 0; i < m.size(); i++) {
if (m.get(i) > max) {
max = m.get(i);// 获取最大次数
id=i;
key = m.keySet();
}
}
System.out.println("出现最多的是:" + key.toArray()[id]);
System.out.println("出现最多次数:" + max);
结果:
出现最多的是:0
出现最多次数:18
望采纳
// 测试数组
int[] array = {2,4,6,8,2,5,8,2,10};
HashMaphashMap = new HashMap ();
for (int i : array) {
hashMap.put(i, hashMap.get(i) == null ? 0 :hashMap.get(i)+1);
}
SetkeySet = hashMap.keySet();
int maxKey = 0;
int maxValue = 0;
for (Integer integer : keySet) {
if(hashMap.get(integer) > maxValue){
maxKey = integer;
maxValue = hashMap.get(integer);
}
}
System.out.println(maxKey);