【发布时间】:2015-02-12 10:49:58
【问题描述】:
我正在尝试使用键、值对实现数据结构,并且正在研究数组实现。
实现此目的的一种方法是为键和值声明单独的一维数组。
private int[] keys = new int[N];
private int[] values = new int[N];
但是通过如下声明二维数组并且不影响数据局部性,是否可以实现同样的效果?
private int[][] keysAndValues = new int[2][N];
Java 以行优先顺序实现多维数组在这里似乎很重要?以这种方式声明数组是否有任何性能优势,或者这是否会降低代码的可读性?
【问题讨论】:
-
int keysAndValues[2][N]是 C 语法,而不是 Java。 Java 数组类型不包括数组边界。此外,Java 在声明时不会为数组分配存储空间;你需要一个显式的初始化器。 -
Java 实际上没有多维数组。相反,您拥有对其他数组的引用数组。每个数组都是一维的。
标签: java arrays multidimensional-array