JAVA中Iterator的具体作用?( 二 )

< 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) 为遍历不同的容器结构提供一个统一的接口(多态迭代) 。

推荐阅读