【发布时间】:2013-10-11 18:30:41
【问题描述】:
在 Java 循环中,使用 boolean 标志而不是 if 语句是否更有效?
看看这两段代码。
使用标志:
public boolean isSomethingForAnyone() {
boolean flag = false;
for (Item item : listOfItems) {
flag = flag || item.isSomething();
}
return flag;
}
使用if 语句:
public boolean isSomethingForAnyone() {
for (Item item : listOfItems) {
if (item.isSomething())
return true;
}
return false;
}
如果isSomething() 在第一次迭代中返回true,那么带有if 语句的方法当然更快。但是,它是平均速度更快还是分支速度减慢到足以使其变慢?另外,如果循环更快,情况会有所不同吗?在这里,为了简单起见,我使用了 for-each 循环,我认为这比使用计数器遍历数组要慢。
【问题讨论】:
-
for-each 并不比普通的 for 循环慢。
-
First 将始终遍历所有元素;当一项为真时,第二个将停止。
标签: java performance if-statement boolean