0

嘿。这里是 Java 初学者 :) 好吧,我在使用这个程序时遇到了一些问题:http: //pastie.org/private/sfqqnqwxtpgtuhswpqepw

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

2) 0 只需要添加到oddList。

3) 我不知道如何将 averageAndGreater() 的平均值添加到数组的末尾。

谢谢 :)

4

2 回答 2

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)用作您的偶数测试。

于 2010-01-24T22:10:38.603 回答
1

这是因为要返回的数组的长度被初始化为原始数组的长度为:

int[] oddList = new int[a.length];
于 2010-01-24T22:13:42.153 回答