如何计算重复数字并写入多少次

时间:2016-12-21 20:57:00

标签: java arrays sequence repeat

在一个数组中,我想计算所有重复项并写下它们重复的次数,我应该如何仅使用循环

数组示例:  int [] array = {12,23,-22,0,43,545,-4,-55,43,12,0,-999,-87};

这是我的代码

public static void main(String[] args) {
        int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
        int cntPoz = 0, cntNeg = 0;

        //for petlja broji pozitivne i negativne clanove array-a
        for (int a = 0; a < array.length; a++) {
            if (array[a] > 0) {
                cntPoz++;
            } else if (array[a] < 0) {
                cntNeg++;
            }
        }

        // kreiranje novih nizova 
        int[] pArr = new int[cntPoz];
        int[] nArr = new int[cntNeg];
        //for petlja iz array-a premjesta sve pozitivne brojeve
        cntPoz = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] > 0) {
                pArr[cntPoz++] = array[i];
            }
        }

        //for petlja iz array-a premjesta sve negativne brojeve
        cntNeg = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] < 0) {
                nArr[cntNeg++] = array[i];
            }
        }

        //sortiranje i ispis nizova
        Arrays.sort(pArr);
        Arrays.sort(nArr);
        System.out.println("Originalni niz je : \n" + java.util.Arrays.toString(array) + "\n");
        System.out.println("Niz pozitivnih brojeva : \n" + java.util.Arrays.toString(pArr) + "\n");
        System.out.println("Niz negativnih brojeva : \n" + java.util.Arrays.toString(nArr));
        System.out.println();
        System.out.println();


        // for petlja prebrojava sve duplikate i ispisuje ih
        int dupCnt = 0;
        for (int i = 0; i < array.length; i++) {
            for (int j = i+1; j < array.length; j++) {

                if ((array[j]) == array[i]) {
                    dupCnt++;
                    System.out.println("Duplicates  " + array[j]);
                }
            }
        }
        System.out.println("Number of duplicates  : " + dupCnt);

1 个答案:

答案 0 :(得分:0)

试试这段代码。它按递增顺序排序第一个整数数组。然后计算相同数字之间的距离,并将它们放入具有键数和值 - 出现率的映射中。打印格式不是很好,但仅用于检查

Sales1.Visible = Convert.ToString(dgvLocation(1, 0).Value) > ""