我正在浏览以下代码示例:
public class GenericTest {
public static void main (String[] args) {
ArrayList<String> myList = new ArrayList<String>();
String s1 = "one";
String s2 = "two";
String s3 = "three";
myList.add(s1); myList.add(s2); myList.add(s3);
String st;
Iterator<String> itr = myList.iterator();
while (itr.hasNext()) {
st = itr.next();
System.out.println(st);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道使用Iterator接口的实现而不是使用普通的for-each循环有什么好处?
for ( String str : myList ) {
System.out.println(str);
}
Run Code Online (Sandbox Code Playgroud)
如果这个例子不相关,那么当我们应该使用Iterator时会有什么好处呢?
谢谢.
sin*_*pop 22
基本上,foreach循环是迭代器最常用的捷径.这是迭代所有元素.但是有一些不同之处:
Sou*_*ink 11
该for-each循环与Java 5中引入的,所以它不是那么"老".
如果您只想迭代集合,则应使用for each循环
for (String str : myList) {
System.out.println(str);
}
Run Code Online (Sandbox Code Playgroud)
但有时候,hasNext()"普通旧" 迭代器的方法对于检查迭代器是否有更多元素非常有用.
for (Iterator<String> it = myList.iterator(); it.hasNext(); ) {
String str = it.next();
System.out.print(str);
if (it.hasNext()) {
System.out.print(";");
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以调用it.remove()以删除next返回的最新元素.
并且有ListIterator<E>提供双向遍历it.next()和it.previous().
所以,它们并不等同.两者都是必需的.
| 归档时间: |
|
| 查看次数: |
10443 次 |
| 最近记录: |