所以我有这些数字的数组,我的任务是制作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));
}
}
答案 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)
恕我直言,你可以使用ArrayList
(import 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