黑马程序员技术交流社区

标题: 迭代器中添加元素为什么要用迭代器对象 [打印本页]

作者: 王鹏伟    时间: 2013-2-26 16:07
标题: 迭代器中添加元素为什么要用迭代器对象
ListIterator it = list.iterator();
while(it.hasNext()){
   Object obj = it.next();
   if(obj.equals("abs"){
     it.add("abds");
   }
}

请问迭代过程添加元素为什么要用迭代器对象?迭代器对象与原List集合是什么关系?

作者: 李挺    时间: 2013-2-26 16:12
迭代器是colletction集合取元素的一种方式,list有一中方法叫iterator()
返回在此 list的元素上进行迭代的迭代器,就是iterator的实现类,这个类里面有hasnext方法,和next方法
可以对原list集合中的元素进行遍历
作者: Benwolf0818    时间: 2013-2-26 16:26
迭代器中封装了多种方法,迭代过程中迭代器只是其中一种方法。List集合继承了Iterator对象
作者: 谢洋    时间: 2013-2-26 18:39
听说迭代的过程中不要往集合中添加元素
因为:
当我们得到迭代器对象时,这个迭代器对象所储的有关集合信息已经固定了,
这时如果我们通过add去改变集合,那么这个对象(迭代器)所储的信息与集合的实际不一致,可以会出现异常
作者: 偏執旳、靑春    时间: 2013-2-26 18:51
存储方式不同,所以取出的细节也不同,java把他们抽成一个共性方法

iterator()迭代器

步骤1.用集合实例对象获取迭代器

Iterator it=a1.iterator();

2.循环取出

while(it.hasNext())

{

  sop(it.next());

}

作者: HM王琦    时间: 2013-2-26 20:18
Iterator是迭代器对象,是用去取出集合中元素的一种方式。而在集合中封装了获取Iteraor对象的方法,就是Iterator()  返回值是Itreator对象,获取到Iterator对象后就可以利用Iterator的方法获取集合中元素了。

ListIterator也是迭代器,是专用于List集合的迭代器,原理与Iterator一样。
作者: 张宁    时间: 2013-2-26 22:24
迭代模式是访问集合类的通用方法,只要集合类实现了Iterator接口,就可以用迭代的方式来访问集合类内部的数据,Iterator访问方式把对不同集合类的访问逻辑抽象出来,使得不用暴露集合内部的结构而达到循环遍历集合的效果。List 是容器 是放数据的Iterator 是一个工具 用来方便循环的list实现了Iterator的相关接口.所以可以用iterator进行遍历。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2