java - 线程中出现异常 "main"错误

标签 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));

    }
}

最佳答案

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

注意:如果您希望 poz 中包含 0,请将 array[i] > 0 更改为 array[i] >= 0

输出:

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

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

关于java - 线程中出现异常 "main"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47351846/

相关文章:

java - 在 Java 的重载方法中使用 null

c++ - 运行时错误问题

c - 请解释一下这段C代码

java - 过滤按属性区分并按日期排序的列表的好方法

c++ - 如何删除结构的动态数组(C++)?

for-loop - 如何在 Kotlin 中以数组索引作为起点/终点进行反向 for 循环?

c++ - 这个 for() 是如何工作的?

java - XSD - 如何定义两个元素之间的关系

java - 不同尺寸屏幕的布局(Android)

java - 我如何获得 JtabbedPane 内的 jPanel