for 循环和 for-each 循环之间有性能差异吗?

2024-01-06

以下两个循环之间的性能差异是什么(如果有)?

for (Object o: objectArrayList) {
    o.DoSomething();
}

and

for (int i=0; i<objectArrayList.size(); i++) {
    objectArrayList.get(i).DoSomething();
}

从第 46 条开始有效的Java https://rads.stackoverflow.com/amzn/click/com/0321356683作者:约书亚·布洛赫

for-each 循环,引入于 发布 1.5,摆脱混乱 以及出错的机会 隐藏迭代器或索引变量 完全地。由此产生的成语 同样适用于集合和 数组:

// The preferred idiom for iterating over collections and arrays
for (Element e : elements) {
    doSomething(e);
}

当您看到冒号 (:) 时,请将其读作 “在。”因此,上面的循环读作 “对于 elements 中的每个元素 e。”笔记 没有性能损失 for 使用 for-each 循环,甚至 for 数组。事实上,它可能会提供轻微的 较普通的性能优势 for 循环在某些情况下,因为它 计算数组索引的限制 只有一次。虽然你可以通过以下方式做到这一点 手(第 45 项),程序员不这样做 总是这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

for 循环和 for-each 循环之间有性能差异吗? 的相关文章

随机推荐