我有一个二维数组,例如String array[][] = {{"","","","","",},{"","","","","",}}
。这个数组已满,我想调整它的大小。因此,由于数组的大小是固定的,我想将这个数组复制到一个更大的新数组中。
此外,我搜索了网站,发现我可以使用
System.arraycopy()
和其他方法,但我更喜欢使用for循环。我在想几个for循环就足够了。
我尝试的是:
String[][] newArray;
for(int i=0; i<array.length; i++) {
for(int j=0; j<array[i].length; j++)
newArray[i][j]=array[i][j];
System.out.println(newArray[i][j]);
System.out.println();
}
但是我一直在收到编译错误error: cannot find symbol j
?
另外,我收到消息variable newArray might not have been initialized
。 newArray
是否必须初始化,因为在我的代码完成后我不知道它的大小是多少?
答案 0 :(得分:1)
至于为什么你的问题被投票:你在问题中说明你可能会使用两个循环来将所有内容复制到一个更大的数组中。通过这种方式,您似乎正在回答自己的问题,这会首先使您的帖子变得不必要。
此外,提供内置功能是有原因的。一般来说,它们比自制解决方案更有效率和高性能。
现在,关于你的问题。是的,你可以使用两个循环,你绝对想避免内置的arraycopy函数。当你自己指出这个解决方案时,我可能不必解释它是如何工作的。
请注意,有更好的方法来处理此类数据集。 Tom提到的集合更容易使用,因为它们可以动态扩展,或者如果您的数据允许,您甚至可以选择1D对象集合。