2010-01-24 44 views
0

嘿那里。 Java初学者在这里:)那么,我有这个程序的一些麻烦:http://pastie.org/private/sfqqnqwxtpgtuhswpqepw为什么我用“0”获得数组元素? (见里面的馅饼)

1)我想我的程序将“输入”数组拆分为oddList,evenList和negativeList数组。然而,当它分裂时,它将一堆元素添加为“0”。

2)0只需要添加到oddList。

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

谢谢:)

回答

4

1)您的数组的长度大于它的内容,因为数组的长度是固定的,这些额外的点必须持有的东西,这是0

2)你应该加0偶数列表如果可能的话,因为测试的均匀度(x%2==0)返回true为0

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)为你甚至测试。

+0

你是金色的,谢谢。 – ashamadelion 2010-01-24 22:23:17

+0

乐于助人。如果您有更多问题,请回来。 – 2010-01-24 23:54:29

1

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

int[] oddList = new int[a.length];