/ /大きなサイズ番号を持つ最初の次元から2次元配列の初期化に時間がかかるのはなぜですか。 - java、配列、パフォーマンス、メモリ管理、時間の複雑さ

なぜ、Javaは長いサイズの数値を持つ最初の次元から始まる2次元配列を初期化するのに長い時間がかかりますか? - Java、配列、パフォーマンス、メモリ管理、時間複雑性

このように2D配列を初期化することに気づきました

ケース1: -

int ar [] [] = new int [10000001][10] ;

このように初期化するよりも時間がかかります

ケース2: -

int ar[] [] = new int [10] [10000001] ;

ケース1では4000ms前後の時間がかかりますが、ケース2では100msを超えません なぜこの大きなギャップがあるのでしょうか。

回答:

回答№1の場合は10

厳密に言えば、Javaには2D配列はありません。代わりに、1D配列を1D配列に配置したものを使用します。

あなたの最初の場合、配列の単一の配列に加えて、Javaは10要素の10000001の配列を作りますが、2番目の場合は10000001要素の10の配列を作ります。

オブジェクトの数は100万倍異なるため、最初のケースはかなり遅くなります。