我正在编写一个 Android 游戏,并试图尽可能高效。
我知道 for 循环比 foreach 更有效,但我想知道以下两项在效率上是否存在差异:
// itemsList is an ArrayList
int length = itemsList.size();
for(int i=0; i < length; i++)
{
// do stuff
}
对比
for(int i=0; i < itemsList.size(); i++)
{
// do stuff
}
最佳答案
这取决于。从理论上讲,第一个会更快,因为第二个必须在每次迭代中进行一次函数调用。实际上,这可以在很大程度上进行优化。该大小可能会缓存在对象中,这使您只剩下函数调用的开销(几乎为零)。 但如有疑问,请选择第一个。它不会更慢。
但总的来说,请记住:过早的优化是万恶之源。
不要选择特定的解决方案,因为您认为它们可能快一纳秒。相反,编写好的、可靠的、最重要的是可读的代码。然后,优化真正的瓶颈。
关于java - 为了循环效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522700/