我有一个2D数组,我想增长它。我已将其复制到一个新数组中,但如何用前一个数组中的内容填充它?
if (row == data.length) {
newData = Arrays.copyOf(data, 2 * data.length);
}
答案 0 :(得分:1)
您是否正在尝试增长它,然后在代码的后续阶段继续操作它?
例如:
你有一个大小为4的数组,你把0 1 2 3放入其中,现在它已经满了,你想要加倍大小,然后继续添加7 8 9之类的数字。
如果是这种情况,您需要做的就是将newData分配给您之前的数组名称,上面的例子就是'数据'。
if (row == data.length)
{
newData = Arrays.copyOf(data, 2*data.length);
data = newData; //assigns the newArray to the previous variable name
}
另一方面,如果你提到你想要一个2D阵列。这是某种类型的数组数组,那么你的代码也适用于2D数组。
然而,在新创建的数组槽中会有空值(例如,您有一个ComplexNumber类的2D数组,如果您尝试访问这些类并调用类似GetImaginaryValue()的方法),您将获得null异常。
正如xscanpix所提到的,如果我们假设您做的是正确的,那么您的代码是可行的。如果不是这样,请编辑您的问题。
如果它不是你要找的东西我为误解而道歉。我已经告诉你,你已经成为了SO的新用户(就像我一样),而且可能刚刚开始使用Java。
答案 1 :(得分:0)
这段代码怎么做不到你想要的呢? Arrays.copyOf
的java API文档声明它返回:
'原始数组的副本,用空值截断或填充以获得指定的长度' (取决于数组的类型)
修改强>
请发布更多代码,否则很难给出合理的答案。
答案 2 :(得分:0)