黑马程序员技术交流社区
标题:
迭代器疑问!!!
[打印本页]
作者:
赵家阳
时间:
2012-11-23 16:32
标题:
迭代器疑问!!!
本帖最后由 赵家阳 于 2012-11-24 18:16 编辑
什么是迭代器?。。。求详解!。。。
Iterator和ListIterator又是怎么回事?。。。求详解!。。。。求精解!。。。。
作者:
love464646
时间:
2012-11-23 16:54
Iterator其实就是集合的取出元素的方式、如同抓娃娃游戏机中的夹子。
ListIterator是Iterator的子接口,是List集合的特有的迭代器,Iterator只能对元素进行判断、取出、删除的操作,如果想要其他的操作如 添加、修改等,就需要使用其子接口 ListIterator
作者:
jerry2627
时间:
2012-11-23 16:56
Iterator和ListIterator主要区别在以下方面:
1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能
2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。
3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。
作者:
段海涛
时间:
2012-11-23 16:56
一、迭代器是为访问容器如set list等提供遍历方法的一种模式,是为容器而生。
使用跌代器,你不需要干涉其遍历的过程,不需要你来提供遍历的算法,只需要通过迭代器获得你想要的数据进行处理就可以了
从而,你只管处理数据,而获取数据的事让iterator去做吧
Iterator it = list.iterator(); //获得迭代器
while(it.hasNext())
{
//填入代码 ,用 “it.next();”逐个获取你想要的list中的数据
}
二、Iterator和ListIterator的区别
List和Set都有iterator()来取得其迭代器
但对List来说,你也可以通过listIterator()取得其迭代器
两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面:
1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能
2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。
3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。
作者:
勾尧
时间:
2012-11-23 17:56
迭代器就是集合取出元素的一种方法。
ListIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中元素,会发生异常。
所以,在迭代时,只能用迭代器的方法操作元素,但Iterato方法有限,因为其只能对元素进行“判断,取出,删除”动作,不能进行其他操作如添加,修改等,此时就需要ListIterator。
具体可以看看预热视频第14天中的内容。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2