我们可以轻松创建2,3,4维数组。但我想知道如何创建非常大的维数组
答案 0 :(得分:11)
你可以使用Array.newInstance
,但是:
新数组的维数不得超过实现支持的数组维数(通常为255)。
但我相信为您的域创建更好的抽象会更好。处理这样的阵列将是困难的。也许你可以提供更多关于你想要达到的目标的信息,以便能够提供更好的答案。
答案 1 :(得分:4)
简单的答案是输入大量的[]
。 (但实际限制是255.这是由JVM规范(在4.3.2部分中)而不是JLS强加的;请参阅Maximum number of dimensions in a Java array)
但你真的不想这样做:
您的代码阅读和维护会很糟糕。每次需要获取元素时,都必须提供400个索引表达式。
以这种方式表示的400维数组会占用大量的内存......
如果你对此很认真,你应该研究某种稀疏表示。但即便如此,传统的阵列计算也很难实用。
答案 2 :(得分:2)
您可以使用BigInteger将400维度编码为整数,并将其用作HashMap或TreeMap的键。您的阵列需要非常非常非常稀疏,否则您很快就会达到内存限制。即使是尺寸为2的400维也是2.6e120
答案 3 :(得分:1)
从长远来看,创建400维阵列将更难维护/读取,并且还会为您浪费大量内存。我建议您创建一个类来存储您的数据,并开始将此类的对象添加到java.util.List interface.
的任何实现中这样您就可以以更易读的格式存储数据。