我有一个二维数组,我想增长它。我已经将它复制到一个新的数组中,但是如何使用前一个数组中的内容填充它?如何生长二维数组
if (row == data.length) {
newData = Arrays.copyOf(data, 2 * data.length);
}
我有一个二维数组,我想增长它。我已经将它复制到一个新的数组中,但是如何使用前一个数组中的内容填充它?如何生长二维数组
if (row == data.length) {
newData = Arrays.copyOf(data, 2 * data.length);
}
这段代码是不是做你想做的事情?对于Arrays.copyOf
Java API的文档说,它返回:
“原始数组的副本,截取或用null填充以获得指定的长度”(取决于阵列的类型)
编辑:
请发布更多的代码,否则将很难给出合理的答案。
您是否试图发展它,然后在代码的后续阶段继续操作它?
例如:
你有大小4的数组,你把0 1 2 3它,现在它的全部,你要扩大一倍,然后继续像这7 8 9加号。
如果是这种情况,所有您需要做的就是将newData分配给您之前的数组名,上面的例子是'data'。
if (row == data.length)
{
newData = Arrays.copyOf(data, 2*data.length);
data = newData; //assigns the newArray to the previous variable name
}
如果另一方面你提到你想要一个2D数组。这是一个特定类型的数组的数组,那么你的代码也应该适用于二维数组。
然而,在新创建的数组槽中会有空值(例如,您有一个ComplexNumber类的二维数组,如果尝试访问这些类并调用像GetImaginaryValue()方法),您将得到一个空异常。
正如xscanpix提到的那样,如果我们假定你做的是正确的,那么你的代码就可以工作。如果不是这样,请编辑您的问题。
如果这不是你要找的,我很抱歉误会。我要通过代表你已经知道你是一个新用户(像我一样),并且可能只是开始使用Java。
使用[arraycopy](http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#arraycopy(java.lang.Object中,%20int,%20java.lang。对象%20int,%20int))? – tnw 2015-03-13 16:16:40
您是否尝试过使用ArrayList的ArrayList?它是动态数组/? WOuld让你的生活变得轻松 – 2015-03-13 19:11:02