在
Java循环中,使用布尔标志而不是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循环,我认为这比使用计数器迭代数组要慢.