如何在java中创建4​​00维数组

时间:2012-07-04 14:35:56

标签: java multidimensional-array

我们可以轻松创建2,3,4维数组。但我想知道如何创建非常大的维数组

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.

的任何实现中

这样您就可以以更易读的格式存储数据。