用于循环效率

use*_*734 3 java performance android for-loop

我正在写一款Android游戏并试图尽可能高效.

我知道for循环比foreach更有效,但我想知道以下两个项目的效率是否存在差异:

// itemsList is an ArrayList

int length = itemsList.size();            

for(int i=0; i < length; i++)
{
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

VS

for(int i=0; i < itemsList.size(); i++)
{
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

Gol*_*rol 11

这取决于.从理论上讲,第一个会更快,因为第二个将在每次迭代中进行函数调用.在实践中,这可以在很大程度上进行优化.大小可能会缓存在对象中,这只会留下函数调用的开销(实际上是零).但如果有疑问,请选择第一个.它不会慢.

但总的来说,请记住:过早优化是万恶之源.

不要选择特定的解决方案,因为您认为它们的速度可能会快一百纳秒.相反,写好,可靠和最重要的可读代码.然后,优化真正的瓶颈.