为此代码或while循环使用"部分"for循环更好吗?

fro*_*die 0 java loops

我刚刚看到以下代码:

for(Iterator<String> iterator = stuff.iterator(); iterator.hasNext();) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

这让我感到有点误用for......这段代码不会更好:

Iterator<String> iterator = stuff.iterator();
while(iterator.hasNext()) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以想到使用的具体原因for?哪种方法更好?

Mic*_*ers 7

我更喜欢

for (String string : stuff) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

更干净,而且很少有实际用途Iterator.

增强的for循环可以应用于任何实现的东西Iterable,只需要该iterator()方法.

如果那是不可能的,我更喜欢第一个版本,因为它限制了迭代器的范围而不需要额外的括号集(你可以将while版本包装在内部{}以获得相同的效果,但是还有额外的缩进级别).


Rom*_*man 6

什么是stuff?你可以为它应用增强的for循环吗?

for (String str : stuff) {
   doSmth (str);
}
Run Code Online (Sandbox Code Playgroud)

明确使用迭代器的唯一原因是在循环时删除某些元素iterator.remove().

  • 只需实现Iterable <T>即可为您自己的对象启用for-each (3认同)