A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

ListIterator it = list.iterator();
while(it.hasNext()){
   Object obj = it.next();
   if(obj.equals("abs"){
     it.add("abds");
   }
}

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

6 个回复

倒序浏览
迭代器是colletction集合取元素的一种方式,list有一中方法叫iterator()
返回在此 list的元素上进行迭代的迭代器,就是iterator的实现类,这个类里面有hasnext方法,和next方法
可以对原list集合中的元素进行遍历
回复 使用道具 举报
迭代器中封装了多种方法,迭代过程中迭代器只是其中一种方法。List集合继承了Iterator对象
回复 使用道具 举报
听说迭代的过程中不要往集合中添加元素
因为:
当我们得到迭代器对象时,这个迭代器对象所储的有关集合信息已经固定了,
这时如果我们通过add去改变集合,那么这个对象(迭代器)所储的信息与集合的实际不一致,可以会出现异常
回复 使用道具 举报
存储方式不同,所以取出的细节也不同,java把他们抽成一个共性方法

iterator()迭代器

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

Iterator it=a1.iterator();

2.循环取出

while(it.hasNext())

{

  sop(it.next());

}
回复 使用道具 举报
Iterator是迭代器对象,是用去取出集合中元素的一种方式。而在集合中封装了获取Iteraor对象的方法,就是Iterator()  返回值是Itreator对象,获取到Iterator对象后就可以利用Iterator的方法获取集合中元素了。

ListIterator也是迭代器,是专用于List集合的迭代器,原理与Iterator一样。
回复 使用道具 举报
张宁 中级黑马 2013-2-26 22:24:54
7#
迭代模式是访问集合类的通用方法,只要集合类实现了Iterator接口,就可以用迭代的方式来访问集合类内部的数据,Iterator访问方式把对不同集合类的访问逻辑抽象出来,使得不用暴露集合内部的结构而达到循环遍历集合的效果。List 是容器 是放数据的Iterator 是一个工具 用来方便循环的list实现了Iterator的相关接口.所以可以用iterator进行遍历。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马