メソッド呼び出しがありMyClass.returnArray()
、for-each 構造 (「拡張 for」ループとも呼ばれます) を使用して配列を反復処理する場合:
for (ArrayElement e : MyClass.returnArray()) {
//do something
}
returnArray()
メソッドは反復ごとに呼び出されるのでしょうか?
ベストアンサー1
いいえ、そうはなりません。最初の呼び出しの結果は、コンパイルされたコード内の一時変数に保存されます。
から効果的な Java 第 2 版、項目46:
配列の場合でも、for-each ループを使用してもパフォーマンスは低下しないことに注意してください。実際、配列インデックスの制限を 1 回だけ計算するため、状況によっては、通常の for ループよりもわずかにパフォーマンスが優れている場合があります。