java - 在检查之前声明循环限制有什么好处?

标签 java performance for-loop

这样做有什么好处,如果有的话:

for (int i = 0, size = foo.size(); i < size; i++) {}

而不是这个:

for (int i = 0 ; i < foo.size(); i++) {}

(foo 是一个 List 对象)

最佳答案

好吧,这意味着您只评估一次 size() 而不是每次迭代一次。从理论上讲,这可能是性能上的胜利——计算大小实际上可能很昂贵。 (例如,您可能有一个链表实现,它不记得它的大小,但实际上必须遍历整个列表。可以说,如果您发现自己处于这种情况,更好的解决方案就是简单地使用更好的数据结构...如果 size() 很昂贵,那么通过索引访问也可能很昂贵。)

实际上,标准集合具有非常快的 size() 方法,因此它通常是无关紧要的,并且会损害可读性 (IMO)。当然,如果你不需要索引,无论如何使用增强的 for 循环更具可读性......

关于java - 在检查之前声明循环限制有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23627511/

相关文章:

java - 使用 Java 流排序时将数字解析为字符串的简单方法?

mysql - 具有限制和性能提升的表连接

python - 重新排列优先级队列的优先级(有效方式)

javascript - 无法记录父 for 循环的值

java - 类的实例

java - 使用PDFBox输出欧元符号

java - hibernate 中的一级缓存存储在哪里?在内存还是硬盘?

javascript - 过滤数组以进行预输入的最快方法

c - 使用 scanf 从一行中扫描多个输入

windows - 在 Windows 批处理脚本中使用循环变量作为新变量的一部分