迭代器
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]
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]
相关文章推荐
- 第六周 项目3 括号的匹配
- 第七周项目二~~链队算法库
- Linux基础(三)TCP链接数量
- 51nod 1046 A^B Mod C (快速幂)
- 二叉树
- CollectionUtils 判断空 和 join分隔符
- Python基础
- UITableView 多选删除功能 IOS
- 第九章、信息与通信技术系统
- UIPickerView
- UVA-1613 K-Graph Oddity (着色问题)
- Calendar使用
- 关于数据库中的BigInt的映射问题
- C++ Builder 利用Rtti访问对象中的字段值
- spring boot 起步-原型实例
- 如何将decimal转换为dbnull
- 排序算法——二分插入排序
- linux常用命令-个人收藏
- WPF之属性
- 石墨烯表亲“锡烯”问世