如何从数组中删除某个数字?

时间:2017-08-18 19:16:33

标签: java arrays numbers

到目前为止,我的代码完成了它应该做的所有事情,但有一点,它应该从数组中排除“0”,我不知道如何将其实现到我的代码中并在数量为正时排除数字0 (pozitivne)我的代码中的数字。

这是我的代码:

Integer[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87, 12};

    int pos2 = 0, neg2 = 0;

    for (int i : array) {
        if (i >= 0) {
            pos2++;
        } else {
            neg2++;
        }
    }

    p1 = new int[pos2];
    n1 = new int[neg2];

    pos2 = 0;
    neg2 = 0;

    for (int i : array) {
        if (i >= 0) {
            p1[pos2] = i;
            pos2++;
        } else {
            n1[neg2] = i;
            neg2++;
        }

    }

    System.out.print("Ukupno: ");
    for (int i : array) {
        System.out.print(" " + i);
    }

    System.out.print("\nPozitivni: ");
    for (int i : p1) {
        System.out.print(" " + i);
    }

    System.out.print("\nNegativni: ");
    for (int i : n1) {
        System.out.print(" " + i);
    }}}

2 个答案:

答案 0 :(得分:2)

你需要两个条件,一个是积极的,另一个是负面的。如果您只是从条件(i> = 0)中删除“=”,则“0”将进入负数组。

Integer[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87, 12};

int pos2 = 0, neg2 = 0;

for (int i : array) {
    if (i > 0) {
        pos2++;
    } else if(i < 0){
        neg2++;
    }
}

p1 = new int[pos2];
n1 = new int[neg2];

pos2 = 0;
neg2 = 0;

for (int i : array) {
    if (i > 0) {
        p1[pos2] = i;
        pos2++;
    } else if(i < 0){
        n1[neg2] = i;
        neg2++;
    }

}

System.out.print("Ukupno: ");
for (int i : array) {
    System.out.print(" " + i);
}

System.out.print("\nPozitivni: ");
for (int i : p1) {
    System.out.print(" " + i);
}

System.out.print("\nNegativni: ");
for (int i : n1) {
    System.out.print(" " + i);
}}}

使用集合的结果相同,只需要一个循环来过滤正面和负面。

    Integer[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87, 12};

     List<Integer> pos1 = new ArrayList<>();
     List<Integer> neg1 = new ArrayList<>();

     for (int i : array) {
         if (i > 0) {
             pos1.add(i);
         } else if(i < 0){
             neg1.add(i);
         }
     }

     System.out.print("Ukupno: ");
     for (int i : array) {
         System.out.print(" " + i);
     }

     System.out.print("\nPozitivni: ");
     for (int i : pos1) {
         System.out.print(" " + i);
     }

     System.out.print("\nNegativni: ");
     for (int i : neg1) {
         System.out.print(" " + i);
     }

答案 1 :(得分:0)

将您的BlockedListener更改为connectionFactory

另外,将if (i >= 0) {更改为if (i > 0) {

这是因为您使用} else {包含0。如果删除} else if (i < 0) {,则应该没问题。