以下两个循环之间的性能差异是什么(如果有)?
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(使用前将#替换为@)