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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、迭代的概念
     按照某种方式重复的做事情

2、迭代器Iterator
     主要遍历Collection集合中的元素,迭代是取出集合中元素的一种方式

3、原理
     于多种集合的数据结构不同,所以存储方式不同,所以,取出方式也不同。这个时候,我们就把判断和获取功能定义在了一个接口中,将来,遍历哪种集合的时候,只要该集合内部实现这个接口即可。
     迭代器是一个内部类,在集合的内部定义了一个类,这个类实现了Iterator接口

4、使用
          List list = new ArrayList();
          list.add(1);
          list.add(3);
          Iterator iterator = list.iterator();
          while(iterator.hasNext()){
               Integer next = (Integer)iterator.next();
               System.out.println(next);
           }
5、常见问题
     ConcurrentModificationException:在迭代的时候给集合增加元素,删除元素(注意:不是通过索引删除)造成的
     并发修改异常:在next()方法第一行进行判断,如果预期的修改次数(expectedModCount)和实际的修改次数(modCount)不同就会发生此异常

6、Iterator 和 ListIterator的区别
     1、Iterator是ListIterator的父接口
     2、Iterator是Collection集合的公共的取出容器中元素的方式,对于List,Set都通用。而ListIterator是List集合的特有的取出元素的方式
     3、Iterator中只具备hasNext(),next(),remove()方法,可以删除被遍历到的元素
          ListIterator中具备对遍历到的元素进行增(add)删(remove)改(set)查(next)的方法,可以对元素逆向遍历previouse相对于next,hasPreviouse相对于hasNext(用的很少)

7、成员方法
Iterator

boolean hasNext()

若被迭代的集合元素还没有被遍历,返回 true

Object next()

返回集合的下一个元素

void remove()

删除集合上一次 next()方法返回的元素。 (若集合中有多个相同的元素, 都可以删掉)

ListIterator  继承自Iterator

void add(Object obj)

将指定元素插入next()方法返回的元素后面

void set(Object obj)

用指定元素替换next()或previouse()方法返回的元素

boolean hasPrevious()

若被迭代的集合元素还没有被遍历,返回 true

Object previous()

返回集合的上一个元素

评分

参与人数 1黑马币 +2 收起 理由
一枝梨花压海棠 + 2 很给力!

查看全部评分

1 个回复

倒序浏览
挺详细的,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马