< cursor)cursor--;lastRet = -1;expectedModCount = modCount;} catch(IndexOutOfBoundsException e) {throw new ConcurrentModificationException();}}final void checkForComodification() {if (modCount != expectedModCount)throw new ConcurrentModificationException();}}至于迭代器模式的使用 。正如引言中所列那样,客户程序要先得到具体容器角色,然后再通过具体容器角色得到具体迭代器角色 。这样便可以使用具体迭代器角色来遍历容器了……四、 实现自己的迭代器在实现自己的迭代器的时候,一般要操作的容器有支持的接口才可以 。而且我们还要注意以下问题:在迭代器遍历的过程中,通过该迭代器进行容器元素的增减操作是否安全呢?在容器中存在复合对象的情况,迭代器怎样才能支持深层遍历和多种遍历呢?以上两个问题对于不同结构的容器角色,各不相同,值得考虑 。五、 适用情况由上面的讲述,我们可以看出迭代器模式给容器的应用带来以下好处:1) 支持以不同的方式遍历一个容器角色 。根据实现方式的不同,效果上会有差别 。2) 简化了容器的接口 。但是在java Collection中为了提高可扩展性,容器还是提供了遍历的接口 。3) 对同一个容器对象,可以同时进行多个遍历 。因为遍历状态是保存在每一个迭代器对象中的 。由此也能得出迭代器模式的适用范围:1) 访问一个容器对象的内容而无需暴露它的内部表示 。2) 支持对容器对象的多种遍历 。3) 为遍历不同的容器结构提供一个统一的接口(多态迭代) 。
推荐阅读
- 万国觉醒中开拓印度航海路线的航海家是 开拓印度航海路线的航海家介绍
- 中国天眼之父 中国天眼之父介绍
- 中元节为什么要放孔明灯
- 篆书是怎么写
- 手机中框一般是什么材料
- 中元节放孔明灯有啥要注意的
- 怎么用ps改变图片中字的颜色
- 夏口送徐郎中归朝原文、作者
- 数学中的sin和cos是什么意思 数学中的sin和cos的含义
- 奉和鲁望早春雪中作吴体见寄原文、作者