在线程“主”错误中获取异常

时间:2017-11-17 13:33:44

标签: java arrays for-loop

所以我有这些数字的数组,我的任务是制作2个新数组,其中一个数组(poz)将包含数组中的所有正数,第二个数组(neg)将从数组中取出所有负数

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

     int[] poz= new int[6];
     int[] neg= new int[5];

     for(int i=0; i<array.length; i++)
     { 
         if(array[i] < 0)
             poz[i] = array[i];
         else neg[i] = array[i];
     }

       System.out.println(Arrays.toString(poz));
         System.out.println(Arrays.toString(neg));

    }
}

3 个答案:

答案 0 :(得分:1)

由于您事先并不知道正数和负数的数量,因此最好使用ArrayList

ArrayList<Integer> poz = new ArrayList<>();
ArrayList<Integer> neg = new ArrayList<>();

然后循环浏览并根据需要添加到相关的ArrayList

for (int i = 0; i < array.length; i++) {
            if (array[i] > 0) {
                poz.add(array[i]);
            } else {
                neg.add(array[i]);
            }
        }

注意:如果您希望0进入array[i] > 0

,请将array[i] >= 0更改为poz

<强>输出:

  

[12,12,23,43,43,545]

     

[ - 999,-87,-55,-22,-4,0,0]

答案 1 :(得分:1)

恕我直言,你可以使用ArrayListimport java.util.*; public class ObNiza { public static void main(String[] args) { int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87}; Arrays.sort(array); List<Integer> positivesList = new ArrayList<>(); List<Integer> negativesList = new ArrayList<>(); for(int i=0; i<array.length; i++) { if (array[i]==0) { // since 0 is not negative nor positive continue; } if(array[i] < 0) { positivesList.add(array[i]); } else { negativesList.add(array[i]); } } Integer[] poz = positivesList.toArray(new Integer[positivesList.size()]); Integer[] neg = negativesList.toArray(new Integer[negativesList.size()]); System.out.println(Arrays.toString(poz)); System.out.println(Arrays.toString(neg)); } } ):

$ pip install mapsplotlib
$ pip install pandas

答案 2 :(得分:0)

您的array尺寸为13.但是poz数组的大小+ neg数组的大小= 13.在for循环中,{{1}中的零值},添加到array数组。因此抛出neg。您必须在ArrayIndexOutOfBoundsException中删除零值。因为零既不是正面也不是负面。

要从数组中删除值,您可以使用array类。

例如: ArrayUtils

commons.apache.org library:Javadocs