使用List.toArray时,数组变为null

时间:2015-12-16 01:02:48

标签: java arrays

我遇到了一个问题,我正在尝试使用列表中的值填充数组,然后在每次调用该方法时将旧值替换为新值。下面的代码工作一次,然后下一次尝试它在使用新的数组变量之前没有给出任何错误,因为应该用列表数据填充的数组只是满了空值。如果有人有任何建议非常感谢。

Integer[] stockFF2 =new Integer[ordersBFList.size()]; 
Integer[] ordersFF2 =new Integer[stockBFList.size()];
stockFFList.toArray(stockFF2);
ordersFFList.toArray(ordersFF2);

2 个答案:

答案 0 :(得分:1)

我认为你的尺码错了(orderFF2和stockFF2正在使用彼此列表的尺寸)。我怀疑其中一个数组是正确填充的 - 一个是数组较大的数组 - 而另一个数组分配并返回一个新数组,其中包含你希望保留传入数组的元素,因为它太短了。

答案 1 :(得分:1)

toArray()方法创建一个新数组,并将列表内容复制到其中。

尝试

Integer[] stockFF2 = stockBFList.toArray(); 
Integer[] ordersFF2 = ordersBFList.toArray();

如果要重用这些数组(很少有价值),请将它们的值替换为:

stockFF2 = stockBFList.toArray(stockFF2); 
ordersFF2 = ordersBFList.toArray(ordersFF2);

忽略返回值是不安全的。如果源集合变大,则返回值是另一个新数组。