写一个方法 要求输入参数为一个整型数组 如:int number[]={2,4,1,5,2,4,9,7,8,2,5,2,6,1,9,2,4}
要求打印出数组中出现次数最多的那个 数 如上中的 2  与出现的次数 如上数组中2出现了4次。

解决方案 »

  1.   

    看我的:import java.util.*;public class MaxCount {
    public static int getMaxCountNumber(int[] numbers) {
    HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
    for (int n : numbers) {
    int oldCount = (hm.get(n) == null) ? 0 : hm.get(n);
    hm.put(n, oldCount + 1);
    }
    Set<Integer> keys = hm.keySet();
    Iterator<Integer> itr = keys.iterator();
    int maxCount = 0;
    int maxCountNumber = 0;
    while (itr.hasNext()) {
    int number = itr.next();
    int count = hm.get(number);
    if (count > maxCount) {
    maxCount = count;
    maxCountNumber = number;
    }
    }
    return maxCountNumber;
    } public static void main(String[] args) {
    int[] number={2,4,1,5,2,4,9,7,8,2,5,2,6,1,9,2,4};
    System.out.println(getMaxCountNumber(number));
    }
    }
      

  2.   


    private void test(){
            int number[]={2,4,1,5,2,4,9,7,8,2,5,2,6,1,9,2,4,1,1} ;
            Map map =  new HashMap(), mixMap = new HashMap();
            int temp,count ,mixCount = 1;
            for(int i = 0 ; i < number.length ; i ++){
                temp = number[i];
                if(map.containsKey(temp)){
                    count = (Integer)map.get(temp);
                    if(count >= mixCount){
                        mixCount = count;
                        mixMap.put(mixCount, temp);
                    }
                    //多个数出现最多次数
                    if(count +1 == mixCount){
                        mixMap.put(mixCount, mixMap.get(mixCount) + "," + temp);
                    }
                    map.put(temp,count+1);
                }else {
                    map.put(temp,1);
                }
            }
            System.out.println(mixMap.get(mixCount) + " " + mixCount+"次");
        }