第1个回答 2008-09-10
你说的没有错,iterator有hasNext()方法,返回是否还有没有访问的元素,next()则是返回下一个元素,这样对于需要遍历的地方,你就不需要知道元素的个数了.
而且iterator支持泛型,如
ArrayList<String> list=new ArrayList<String> ();
list.add("I");
list.add("Love");
list.add("You");
//注意对list修改完后,再取迭代器。不然会引发ConcurrentModificationException
//迭代器
Iterator<String> iter=list.iterator();
while(iter.hasNext())
System.out.println(iter.next()); //next()取得直接是String类型,不需要类型转换了。(JDK1.5以上)
//ArrayList实现了Iterable接口,因此可以用for-each循环遍历(JDK1.5以上)
for(String str:list)
System.out.println(str);
-------
你把它理解成数据结构中链表的那个next,就是一个线索。把容器中的各个元素穿起来。
你自己的类型也可以实现iterable接口,就可以迭代了。也可以用
foreach循环遍历了。
第2个回答 2008-09-09
就是方便对集合类中的元素进行迭代的 恩 基本就是这个意思 取出集合中的元素 进行遍历
举个例子吧
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String argv[]) {
ArrayList list = new ArrayList();
list.add(1);
list.add(3);
list.add(5 );
Iterator it = list.iterator();
while(it.hasNext()){
int s = (Integer)it.next();
System.out.println(s);
}
}
}