ホームページ >Java >&#&チュートリアル >`toArray(new MyClass[0]) または toArray(new MyClass[myList.size()]): Java ArrayLists ではどちらが高速ですか?
toArray(new MyClass[0]) または toArray(new MyClass[myList.size()])?
のコンテキスト内Java ArrayList の toArray メソッドを使用して、ArrayList を指定された型の配列に変換できます。ただし、空の配列を使用するか、リストの正確なサイズの配列を使用するかを選択すると、パフォーマンスに影響を与える可能性があります。
パフォーマンスに関する考慮事項
直感的には、 toArray(new MyClass[myList.size()]) のような配列の方が効率的です。ただし、マイクロ ベンチマークの結果、空の配列 toArray(new MyClass[0]) を使用すると、特に大きなリストの場合、常にサイズ変更アプローチよりも優れたパフォーマンスを発揮することがわかりました。
空の配列が高速である理由
この直観に反して高速なパフォーマンスは、JVM の最適化によるものです。 JVM および JIT コンパイラには、配列の作成と初期化のための最適化が組み込まれていますが、配列を手動で作成する場合には利用されません。
現実世界への影響
パフォーマンスの違いは、小さなアレイでは顕著ではないかもしれませんが、大きなアレイでは顕著になる可能性があります。したがって、パフォーマンスが重要な状況や最適化された内部ループの場合は、toArray(new MyClass[0]) を使用することをお勧めします。
概要
当初の期待に反して、 ArrayList の空の配列 (toArray(new MyClass[0])) は、配列の事前サイズ設定と比較して優れたパフォーマンスを示します。これは、配列の作成と初期化を効率的に処理する JVM の最適化によるもので、手動で配列を作成する場合には利用できません。
以上が`toArray(new MyClass[0]) または toArray(new MyClass[myList.size()]): Java ArrayLists ではどちらが高速ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。