2,3,4次元配列は簡単に作成できますが、非常に大きな次元配列を作成する方法を知りたいです。
4 に答える
を使用できますArray.newInstance
が、次のようになります。
新しい配列の次元数は、実装でサポートされている配列の次元数 (通常は 255) を超えてはなりません。
しかし、ドメインのより良い抽象化を作成する方が良いと思います。このような配列を扱うのは難しいでしょう。より良い答えを提供できるように、達成しようとしていることについてより多くの情報を提供できるかもしれません。
簡単な答えは、たくさんの[]
's を入力することです。(ただし、実際の制限は 255 です。これは、JLS ではなくJVM 仕様 (セクション4.3.2 ) によって課されています。 Java 配列の最大次元数を参照してください)
しかし、あなたは本当にこれをしたくないでしょう:
あなたのコードは、読んで維持するのが恐ろしいでしょう。要素をフェッチする必要があるたびに、400 のインデックス式を提供する必要があります。
このように表現された 400 次元の配列は、とんでもない量のメモリを消費します...
これについて真剣に考えている場合は、ある種のスパース表現を検討する必要があります。しかしそれでも、従来の配列計算はほとんど実用的ではありません。
できることは、BigInteger を使用して 400 次元を整数としてエンコードし、これを HashMap または TreeMap のキーとして使用することです。配列は非常に、非常に、非常にまばらである必要があります。そうしないと、すぐにメモリ制限に達します。サイズ2の400次元でも2.6e120
400 次元の配列を作成すると、長期的には維持/読み取りが難しくなり、大量のメモリが浪費されます。データを格納するクラスを作成し、このクラスのオブジェクトをjava.util.List インターフェイスの実装に追加することをお勧めします。
このようにして、データをより読みやすい形式で保存することもできます。