您的位置:首页 > 其它

迭代器

2015-10-12 16:18 274 查看
迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或者关心该序列底层的结构

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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: