迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或者关心该序列底层的结构
Iterator只能向前移动
1)使用iterator()返回一个Iterator,Iterator将准备好返回序列的第一个元素
2)next()获取序列的下一个元素
3)hasNext()检测序列中是否还有元素
4)remove()将迭代器新近返回的元素删除
List<String> c=new LinkedList<String>();
c.add("ten");
c.add("eleven");
c.add("a");
c.add("b");
Iterator<String> it=c.iterator();
while(it.hasNext())
{
String s=it.next();
System.out.print(" "+s);
}
System.out.println();
it=c.iterator();
for(int i=0;i<2;i++)
{
it.next();
it.remove();
}
System.out.println(c);
输出
ten eleven a b
[a, b]
ListIterator是一个更加强大的Iterator,它只能适用于各种LIst类的访问,它可以双向移动
listIterator()指向List开始处的ListIterator,listIterator(n创建一个一开始指向列表索引为n的ListIterator
List<String> c=new LinkedList<String>();
c.add("ten");
c.add("eleven");
c.add("a");
c.add("b");
ListIterator<String> it=c.listIterator(1);
//Iterator<String> it=c.iterator();
while(it.hasNext())
{
it.next();
it.set("sss");
}
System.out.println(c);
输出
[ten, sss, sss, sss]