0

別のクラスにJavaint[][][]オブジェクトがあります。

配列の最初の次元には約1000個の要素がありますが、一度にアクセスする必要があるのは1つだけです。

私の質問は次のとおりです。一度に1つの要素だけにアクセスしたい場合は、次のようにします。

int[][] some2DInt = SomeClass.some3DInt[5];

これは効果的でしょうか?つまり、Javaは1000個の要素全体をロードするのでしょうか、それとも本当に必要な要素だけをロードするのでしょうか。

4

1 に答える 1

2

ここには読み込みはありません。int[][]はアドレスなので、次のようなことをすると:

int[][] some2DInt = SomeClass.some3DInt[5];

some2DIntメモリ内の5番目の2次元配列のアドレスに割り当てるだけです。したがって、コピーや「ロード」は行われません。

newロード(実際にはメモリ割り当て)は、演算子を使用して3次元配列を初期化するときに実行されます。(または、この配列を静的に初期化する場合、特に1000個の2D配列では面倒な作業になる可能性があります)

于 2012-12-03T16:55:36.553 に答える