有谁知道为什么java.util.Spliterator
当循环体为空时,实现使用 do-while 而不是 while 循环?例如,实施forEachRemaining
is:
default void forEachRemaining(Consumer<? super T> action) {
do { } while (tryAdvance(action));
}
他们为什么要使用
do { } while (tryAdvance(action));
代替
while(tryAdvance(action));
?
有什么我不知道的优点吗?
逻辑检查在 do{} 主体之后执行。这可以通过多种方式使用,但与 while 循环执行相同的操作,并在最后进行逻辑检查。因为 do{} 为空,所以线程将等待直到收到通知,然后执行逻辑检查,而不是执行逻辑检查 then if true wait。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)