【发布时间】:2014-05-06 12:10:33
【问题描述】:
我在Java 应用程序中使用"foreach" 循环已有很长时间了。最近我开始想知道在性能(甚至结果)之间是否存在任何显着差异:
Collection<String> collection = someMethod();
for(String element : collection) { ... }
和:
for(String element : someMethod()) { ... }
如果不是Collection,而是List、Map、Set 或array,该怎么办?
【问题讨论】:
-
您为什么会怀疑性能差异?
-
您是如何发现性能差异的?
-
我更喜欢前者。如果您想知道 someMethod() 是否被多次调用(不应该如此),请在其中添加一个调试语句。
-
我认为他担心 someMethod() 会被多次调用(更准确地说:对于每次迭代),导致性能差异很小到很大,具体取决于
someMethod()是什么正在做。我认为这是重复的:stackoverflow.com/questions/3298202/…