日期:2014-05-20  浏览次数:20822 次

new一个二维数组的问题?
我在书上看到 String table[][]=new String[rows][columns],rows和columns已有值,然后就可以使用这个二维数组了?
如果是C++,这样应该不行吧?

------解决方案--------------------
java的数组实际上是对象,不管几维都可以
------解决方案--------------------
引用:
C++应该是先new一个一维指针数组,对每一个指针元素再new一个一维数组。
Java可以直接new一个二维数组吗?

可以的,就像楼上说的,你直接new几维都可以,一般最多就是二维,三维以上逻辑就太复杂了。而C++的二维数组你也可以看成是一个由一维数组组成的一维数组。
------解决方案--------------------
String table[][]=new String[rows][columns]
你这只是分配了内存空间,并没有赋值。
当然,在类加载的第二个流程添加默认值0
------解决方案--------------------
java可以直接new一个二维数组,例如
int rows = 3;
int columns = 3;
String table[][]=new String[rows][columns]

这样在内存中就会分配一个空间给这个二维数组。空间大小已定,只是还没有放数据。
------解决方案--------------------
Object[][]...[] arr = new Object[][]...[];
这是初始化了n维度的索引数组,需要给每一个对应的赋值才能用:
arr[i][j]...[n] = new Object();
一般使用n重循环来给n维数组赋值,当然,n比较小的时候也可以这样直接初始化:
Object[][]...[] arr = {{new object(),...},...{new object(),...}};
------解决方案--------------------
C++没使用过 java完全可以。。