Java打印任意数组元素出现的次数

来源:互联网 发布:mariadb与mysql性能 编辑:程序博客网 时间:2024/06/03 22:03
//方法一:        int[] arr = { 1, 2, 3, 3, 4, 4 };        boolean[] flagArr = new boolean[arr.length];        for (int i = 0; i < arr.length; i++) { // arr中重复的元素对应的索引arr2中赋值为0;            int count = 0;            if (!flagArr[i]) {                for (int j = i + 1; j < arr.length; j++) {                    if (arr[i] == arr[j]) {                        flagArr[j] = true;                    }                }            }        }            for (int i = 0; i < arr.length; i++) {// 只要arr2中不为0的话,那对应得索引在arr中的元素必不重复;                if (!flagArr[i]) {                    int count = 0;                    for (int j = 0; j < arr.length; j++) {                        if (arr[i] == arr[j]) {                            count++;                        }                    }                    System.out.println(arr[i] + "出现了" + count + "次");                }            }            /*打印结果:            1出现了1次            2出现了1次            3出现了2次            4出现了2次            *///方法二:    /**     这个方法是定义一个新数组,新数组只存老数组不重复的元素。        */        int[] arr = { 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 4, 0,4, 4, 4, 4, 5, 5, 5, 5, 5 };        int[] arr2 = new int[arr.length];        boolean flag;        int count1 = 0;        for (int i = 0; i < arr.length; i++) {            if (arr[i] == 0) {                count1++;            }        }        System.out.println(0 + "出现了" + count1 + "次");        for (int i = 0; i < arr.length; i++) {            flag = true;            for (int j = 0; j < arr.length; j++) {                if (arr[i] == arr2[j]) {                    flag = false;                }            }            if (flag) {                arr2[i] = arr[i];                int count = 0;                for (int j = i; j < arr.length; j++) {                    if (arr[i] == arr[j]) {                        count++;                    }                }                System.out.println(arr[i] + "出现了" + count + "次");            }        }        /*打印结果:        0出现了8次        1出现了1次        2出现了3次        3出现了3次        4出现了5次        5出现了5次        *///方法三://虽然集合有方法可以去重,但是感觉还是得锻炼一下自己的逻辑思维能力        ArrayList<Integer> arrlist = new ArrayList<>();        int[] arr = { 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, 3, 3, 4, 0, 4, 4, 4, 4, 5, 5, 5, 5, 5 };        // List<int[]> asList = Arrays.asList(arr);        for (int i : arr) {            arrlist.add(i);        }        for (int x = 0; x < arrlist.size() - 1; x++) {// 手动集合去重代码            for (int y = x + 1; y < arrlist.size(); y++) {                if (arrlist.get(x) == arrlist.get(y)) {                    arrlist.remove(y);                    y = y - 1;                }            }        }        for (int i = 0; i < arrlist.size(); i++) {            int count = 0;            for (int j = 0; j < arr.length; j++) {                if (arrlist.get(i) == arr[j]) {                    count++;                }            }            System.out.println(arrlist.get(i) + "出现了" + count + "次");        }
阅读全文
0 0
原创粉丝点击