私の質問は、Androidコンパイラを使ったjavaの最適化に関するものです。以下のmap.values()は繰り返しごとに呼び出されるか、Androidコンパイラはそれを最適化します。foreachのforループとforループfor java
LinkedHashMap<String, Object> map;
for (Object object : map.values())
{
//do something with object
}
同様に、別の例があります。 aList.size()は繰り返しごとに呼び出されますか?
List<Object> aList;
for (int i = 0; i < aList.size(); i++)
{
object = aList.get(i);
//do something with i
}
これ以降、すべての反復処理でメソッドを呼び出すかどうかは重要ですか? Map.values()、およびList.size()は何かをしますか?
これは実際にAndroidとは特に関係のないJavaの質問です。 –
私はこの質問に興味があることを理解していますが、現実的な目的のためには、コードを最適化する前にプロファイルを作成することを強くお勧めします。 –
@PhilippReichart - あるコーディングスタイルが他のコーディングスタイルよりも優れたパフォーマンス上の優位性を持っているかどうかを尋ねるのは理にかなっています。また、プロファイリングにも限界があります。 Androidをコーディングする場合、コードはさまざまなプラットフォームで実行される可能性があります。その中にはJITコンパイラがあるものもあれば、そうでないものもあれば、まだ存在しないものもあります。 –