Java 使用“a”是否更好;“部分”;此代码的for循环还是while循环?
我刚刚遇到了以下代码:Java 使用“a”是否更好;“部分”;此代码的for循环还是while循环?,java,loops,Java,Loops,我刚刚遇到了以下代码: for(Iterator<String> iterator = stuff.iterator(); iterator.hasNext();) { ... } ? 任何人都可以想到使用进行的具体原因吗?哪种方法更好?什么是东西?你能申请吗 显式使用迭代器的唯一原因是在使用iterator.remove()循环时删除某些元素 for (String string : stuff) { ... } 要干净得多,而且很少实际使用迭代器 增强的for循
for(Iterator<String> iterator = stuff.iterator(); iterator.hasNext();) {
...
}
?
任何人都可以想到使用
进行
的具体原因吗?哪种方法更好?什么是东西
?你能申请吗
显式使用迭代器的唯一原因是在使用iterator.remove()
循环时删除某些元素
for (String string : stuff) {
...
}
要干净得多,而且很少实际使用迭代器
增强的for循环可以应用于任何实现的对象,这些对象只需要iterator()
方法
如果这是不可能的,我更喜欢第一个版本,因为它限制了迭代器的范围,而不需要额外的一组括号(您可以将而版本包装在{}
中,以获得相同的效果,但具有额外的缩进级别)。为什么不使用foreach循环?从1.5
for (Element el : collection) {
// do whatever
}
for循环更好,因为迭代器的范围仅限于循环内部。据我所知,除了个人偏好之外,没有什么真正的区别。我想有些人可能更喜欢“for…”变体,因为它使用的代码少了一行,但我发现它更难阅读。for循环的“误用”是什么?在这种情况下,我可能可以使用foreach。。。但是,如果它不是一个本地Java集合,并且是用户定义的,那么for each不能使用,但它有自己的迭代器呢?只要实现Iterable,以便为自己的对象启用for each。如果它是一个旧的(即使用Java 1.4或更早版本编写的)第三方库,那么我更喜欢while循环。它更干净,使代码更可读。
for (String string : stuff) {
...
}
for (Element el : collection) {
// do whatever
}