我有一个要处理的列表。 这些项目要么启用, 要么禁用。 用户可以选择是否显示禁用的项目 。
So you have cond2
that depends on the items, and cond1
that does not. Here s the dilemma I got into: Should I use cond1 && !cond2
or !(!cond1 || cond2)
? Or should I check for the cond2
(show disabled items) before the loop? I also thought (as you will see in the code I put) if I should put the cond2
before cond1
, because cond2
is a boolean variable, and with "short-circuits" (lazy evaluation?), it will be faster?
我主要关心的是速度,如果我在循环中有许多项目,这可能是一个重要的变化。
这是说明选项的代码:
// First Option
for (String item : items) {
doSomethingFirst(item);
if (isDisabled(item) && !showDisabled) {
continue;
}
doSomethingElse(item);
}
// Second Option
for (String item : items) {
doSomethingFirst(item);
if (!(!isDisabled(item) || showDisabled)) {
continue;
}
doSomethingElse(item);
}
// Third Option
if (showDisabled) {
for (String item : items) {
doSomethingFirst(item);
doSomethingElse(item);
}
} else {
for (String item : items) {
doSomethingFirst(item);
if (isDisabled(item)) {
continue;
}
doSomethingElse(item);
}
}
所以, is disabled (it)
和 how disabled
的顺序是否重要? 我应该在循环之前检查事项吗? 还是编译器优化了这一点? (I doubt...)
" 坚固 " / " 坚固 " 如果相关,我不知道我将如何进行测量,以查看实际值。
谢谢