为什么我得到“0”的数组元素? (见里面的馅饼)

时间:2010-01-24 22:05:01

标签: java arrays elements

嘿那里。 Java初学者:)好吧,我在这个程序中遇到了一些麻烦:http://pastie.org/private/sfqqnqwxtpgtuhswpqepw

1)我希望我的程序将“input”数组拆分为oddList,evenList和negativeList数组。但是,在拆分时,它会添加一堆元素为“0”。

2)0只需要添加到oddList。

3)我无法弄清楚如何将averageAndGreater()的平均值添加到数组的末尾。

谢谢:)

2 个答案:

答案 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];