java的Iterator智能单项移动,这个Iterator只能用来
1.使用方法iteraotr()要求返回一个Iterator。Iterator将准备好返回取回的第一个元素。
2.使用next()获得序列的下一个元素。
3.使用hasnext()检查序列中是否还有元素。
4.使用remove()将迭代器新近返回的元素删除。
例如:
public class SimpleCollection {
public static void main(String[] args) {
List<Pet> pets =Pets.arrayList(12);
Iterator<Pet> it = pets.iterator();
while(it.next()){
Pet p = it.next();
System.out.print(p.id + "," + p + "");
}
System.out.println();
for(Pet p : pets)
System.out.print(p.id + ":" + p + "");
System.out.println();
it = pets.iterator();
for(int i =0 ; i < 6; i++){
it.next();
it.remove();
}
System.out.println(pets);
}
}
ListInterator
ListInterator是一个更加强大的Iterator的子类型,它只能用于各种list类的访问。尽管iterator只能向前移动,
但是ListIterator可以双向移动。它还可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个的索引,并且可以使用
set()方法替换他访问过的最后一个元素。你可以通过调用listIterator()方法产生一个指向list开始处的ListIterator,并且
还可以通过调用listIterator(n)方法创建一个一开始就指向列表所用为n的元素处的ListIterator.