このように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万倍異なるため、最初のケースはかなり遅くなります。