Java数组中的最大维度数
出于好奇,在Java中一个数组可以有多少个维度?Java语言没有限制维度的数量,但Java VM规范将维度的数量限制为255 例如,以下代码将无法编译:Java数组中的最大维度数,java,multidimensional-array,Java,Multidimensional Array,出于好奇,在Java中一个数组可以有多少个维度?Java语言没有限制维度的数量,但Java VM规范将维度的数量限制为255 例如,以下代码将无法编译: class Main { public static void main(String[] args) { final int[][][][][][][][][][][][][][][][] [][][][][][][][][][][][][][][][]
class Main {
public static void main(String[] args) {
final int[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][]
[][][][][][][][][][][][][][][][] x;
}
}
有误:
1.java:18: error: array type has too many dimensions
[][][][][][][][][][][][][][][][] x;
^
1 error
(参考:“数组类型描述符仅在表示255个或更少维度时有效。”)严格来说
Maximum number of dimensions in a Java array
在java中,只有一维数组是可能的。因为在幕后,java将多维数组视为数组的数组
概念证明:
这就是为什么Java中也可能有不规则的数组 小型实验表明,最大尺寸为255个。256导致编译错误
换句话说,如果您需要255(ha!)以上,则必须将外部对象设置为对象数组,然后在低于256时将其转换为实际类型。这很有趣-我不知道。一方面,我想知道为什么有人会想要使用这种维度的数组,另一方面,我想知道为什么他们会这样限制它。@KennyTM:很明显。但是,如果您的数组有255个以上的维度,您真的担心存储数组的维度需要8位还是32位吗?我已经迫不及待地想利用java.util.BigArray来存储n维数组了。“255个维度对任何人来说都应该足够了。”的确,对于一些很少使用的东西来说,它不值得这么复杂。