1)我希望我的程序将“input”数组拆分为oddList,evenList和negativeList数组。但是,在拆分时,它会添加一堆元素为“0”。
2)0只需要添加到oddList。
3)我无法弄清楚如何将averageAndGreater()的平均值添加到数组的末尾。
谢谢:)
答案 0 :(得分:4)
1)你的数组比它的内容长,因为数组是固定长度的,那些额外的点必须包含一些东西,即0。
2)如果可能的话,你应该在偶数列表中加0,因为均匀度(x%2==0)
的测试对0返回true。
3)您应该创建一个比实际需要更长的数组int[] oddList = new int[a.length+1];
并使用array[array.length-1] = averageAndGreater(input2);
获取正确大小的数组的最简单方法可能是使用Java内置的ArrayList类。当您知道需要多长时间时,您还可以在方法结束时重新制作阵列。如下所示:
int array = new int[total];
for (int i=0; i<total; ++i) {
array[i] = oddList[i];
}
return array;
编辑:
您的偶数和奇数列表将包含负数,不确定这是否是有意的,但拒绝它们使用((a[i] % 2 == 0) && a[i] >= 0)
作为您的偶数测试。
答案 1 :(得分:1)
这是因为要返回的数组的长度初始化为原始数组的长度:
int[] oddList = new int[a.length];