Adr*_*udt 2 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循环更可读......
归档时间: |
|
查看次数: |
130 次 |
最近记录: |