所以我有了带有这些数字的数组,我的任务是制作2个新数组,其中一个array(poz)将具有来自数组的所有正数,第二个array(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));

    }
}

最佳答案

由于您事先不知道正数和负数的数量,因此最好使用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]

10-05 21:15
查看更多