java - 为了循环效率

标签 java android for-loop performance

我正在编写一个 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/

相关文章:

c# - 我们还需要迭代器设计模式吗?

Android - 需要一种无需源代码即可创建库(.aar 文件)的方法

javascript - 如何循环遍历标签元素并通过 OnClick 函数在显示上获取相应的内容?

javascript - 这个 for 循环出了什么问题

java - 选项卡组件消耗鼠标,因此选项卡不会更改

Java - 如何将图像添加到资源

android - 使用 ProGuard 删除 Android 中的 LibGDX 日志

java - 我有一个正在更改的数组,即使我没有专门更改它

java - java.text.SimpleDateFormat 中的奇怪行为期望 yyyyMMdd 给定 yyyy-MM-dd

android - 让我们在 Android 上加密给出 java.security.cert.CertPathValidatorException : Trust anchor for certification path not found