二种实现方法;
一:
int[] a = { 5,5,8,5,3,5,3,3,3,5,1,5 };
Arrays.sort(a); //把数组变成集合
for (int i = 0; i < a.length; i++) {
System.out.println("i="+a[i] );
}
int maxNumber = a[0], maxCount = 1;
int curNumber = a[0], curCount = 1;
System.out.println("数组角标="+(a.length - 1));
for (int i = a.length - 1; i > 0; i--)
{
curNumber = a[i];
if (a[i] == a[i - 1])
{
curCount++;
}
else {
if (curCount > maxCount)
{
maxCount = curCount; maxNumber = curNumber;
}
curCount = 1;
}
}
System.out.println("\nmaxCount:"+maxCount+",maxNumber:"+maxNumber);
二:
int[] num = {5,5,8,5,3,5,3,3,3,5,1,5};
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for( int i =0 ; i<num.length ;i++){
if(map.containsKey(num[i])){
map.put(num[i], (Integer)map.get(num[i])+1);//如果已经有key--num[1],那么这个put,就会把value值+1覆盖原来的value值
}else{
map.put(num[i], 1);
}
}
Integer max= Integer.MIN_VALUE;
Integer max2 = Integer.MIN_VALUE;
for( Entry<Integer, Integer> entry : map.entrySet() ) {
Integer key = entry.getKey();
Integer value = entry.getValue();
if(value>=max){
max=value;
if(key>=max2){
max2=key;
}
}
}
for( Entry<Integer, Integer> entry : map.entrySet() ) {
Integer key = entry.getKey();
Integer value = entry.getValue();
if(key==max2){
System.out.println("频率最大数"+key+" 频率:"+max);
}
}