我想问大家的是: 有关Iterable接口中的iterator()方法..看了下帮助知道此方法是Iterable接口中的iterator()方法..
在他的子接口Collection,List中都会去继承到iterator()这个方法.但是到了List的实现类ArrayList为什么他没有去实现
就可以用呢?
例子: ArrayList al = new ArrayList();
a1.add("liu");
Iterator itr = al.iterator();//al调用此方法得到一个itr接口对象
帮忙解释下..
在他的子接口Collection,List中都会去继承到iterator()这个方法.但是到了List的实现类ArrayList为什么他没有去实现
就可以用呢?
例子: ArrayList al = new ArrayList();
a1.add("liu");
Iterator itr = al.iterator();//al调用此方法得到一个itr接口对象
帮忙解释下..
此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException。因此,面对并发的修改,迭代器很快就会完全失败,而不是冒着在将来某个不确定时间发生任意不确定行为的风险。这在JAVA的帮助文档有详细说明。
ArrayList是没实现,但他的父类AbstractList实现了
无需一定要迭代器,但是set集合它是无序的,无索引,所以只能通过迭代器去遍历