返回信息流http://www.importnew.com/16742.html
想象一下,一个二维数组看起来就像一个X-Y坐标系的矩阵。
然而,可能让Java开发者们感到惊讶的是,Java实际上并没有二维数组。
在一个真正的数组中,所有的元素在内存中都存放在连续的内存块中,但是在Java的二维数组并不是这样。Java中所有一维数组中的元素占据了相邻的内存位置,因此是一个真正的数组。
在Java中,当我们定义:
int singleElement // 表示一个int变量
int[] singleDArray // 表示一个int变量数组(一维)
int[][] twoDArray // 表示一个int变量数组的数组(二维)
这意味着,在上面的例子中,二维数组是一个数组的引用,其每一个元素都是另一个int数组的引用。
上图清楚地解释了这个概念。
由于二维数组分散在存储器中,所以对性能有一些影响。为了分析这种差异,我们用分别用行顺序和列顺序遍历一个9999长宽的数组,时间如下:
这是因为这意味着我们访问数组时每次都在访问不同的行(因此也在访问不同的页),代码微小的改变将导致这个程序花费更多的时间完成遍历。
这是一条镜像帖。来源:北邮人论坛 / java / #44514同步于 2015/10/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
Java多维数组存储及遍历
icyfox
2015/10/1镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复