这样做有什么好处,如果有的话:
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/