統計int配列における重複数の個数

1702 ワード

本白さんはjavaに触れたばかりで、筆記試験の復習をしているうちに、配列の繰り返し数の個数をどのように統計するかをまとめました.
方法1、HashMapを使います.この方法は簡単明瞭で,操作と理解が容易である.
private static void countSameNumber1(int[] number){
        HashMap hm = new HashMap();
        for(int i =0;i < number.length;i++){
            if(!hm.containsKey(number[i])){
                hm.put(number[i],1);
            }
            else{
                hm.put(number[i],(hm.get(number[i]))+1);
            }
        }
        for(Map.Entry entry:hm.entrySet()){
            System.out.println(entry.getKey() + "   " + entry.getValue() + " ");
        }
    }

方法2は、1つの配列で重複する個数を格納し、配列の下には統計が必要な数字が表示されます.
private static void countSameNumber2(int[] number){
        Arrays.sort(number);
        //     1 2 3 4 1 2 ,        5   ,   0-4.
        int[] numbers = new int[number[number.length -1] + 1];
        for(int i =0;i< numbers.length;i++){
            numbers[i] = 0;
        }
        //i        ,numbers[i]       
        for(int i =0; i

メソッド3を追加し、Collections.frequency()で実装
 private static void countSameNumber3(int[] number){
        ArrayList al = new ArrayList();
        ArrayList all = new ArrayList();
        for(int i =0;i