Java得到数组中最有效的元素和下标[Java编程]
本文“Java得到数组中最有效的元素和下标[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
先看代码
import java.util.Arrays;
/**
* 得到数组中最有效的元素和下标.<br>
* 最有效的只呈现频率超越长度一半的数据.
*
* @author 赵学庆 www.java2000.net
*/
public class MyTest {
public static void main(String[] args) {
int[] values = new int[] { 5, 3, 5, -5, 5, 0, 5 };
int maxValue = getMax(values);
if (maxValue > Integer.MIN_VALUE) {
System.out.println("Number=" + maxValue);
for (int i = 0; i < values.length; i++) {
if (values[i] == maxValue) {
System.out.print(i + " ");
}
}
} else {
System.out.println("没有找到");
}
}
public static int getMax(int[] values) {
int[] nums = Arrays.copyOf(values, values.length);
Arrays.sort(nums);
int number = Integer.MIN_VALUE;
int count = 0;
int numbertemp = Integer.MIN_VALUE;
int counttemp = 0;
for (int num : nums) {
if (num == numbertemp) {
// 增添当前
counttemp++;
} else {
// 判断能否比前一个大
if (counttemp > count) {
number = numbertemp;
count = counttemp;
}
// 设置当前
numbertemp = num;
counttemp = 1;
}
}
// 判断能否比前一个大
if (counttemp > count) {
number = numbertemp;
count = counttemp;
}
if (1.0 * count / nums.length > 0.5) {
return number;
}
return Integer.MIN_VALUE;
}
}
运行后果
Number=5
0 2 4 6
以上是“Java得到数组中最有效的元素和下标[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |