我刚刚看到以下代码:
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?哪种方法更好?
我更喜欢
for (String string : stuff) {
...
}
Run Code Online (Sandbox Code Playgroud)
更干净,而且很少有实际用途Iterator.
增强的for循环可以应用于任何实现的东西Iterable,只需要该iterator()方法.
如果那是不可能的,我更喜欢第一个版本,因为它限制了迭代器的范围而不需要额外的括号集(你可以将while版本包装在内部{}以获得相同的效果,但是还有额外的缩进级别).
什么是stuff?你可以为它应用增强的for循环吗?
for (String str : stuff) {
doSmth (str);
}
Run Code Online (Sandbox Code Playgroud)
明确使用迭代器的唯一原因是在循环时删除某些元素iterator.remove().