我想问大家的是:       有关Iterable接口中的iterator()方法..看了下帮助知道此方法是Iterable接口中的iterator()方法..
在他的子接口Collection,List中都会去继承到iterator()这个方法.但是到了List的实现类ArrayList为什么他没有去实现
就可以用呢?
例子:                ArrayList al = new ArrayList();
                    a1.add("liu");
                    Iterator itr = al.iterator();//al调用此方法得到一个itr接口对象
                                   帮忙解释下..

解决方案 »

  1.   

    ArrayList此类是不同步的
    此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改,否则在任何时间以任何方式对列表进行修改,迭代器都会抛出 ConcurrentModificationException。因此,面对并发的修改,迭代器很快就会完全失败,而不是冒着在将来某个不确定时间发生任意不确定行为的风险。这在JAVA的帮助文档有详细说明。
      

  2.   

    ArrayList<E> extends AbstractList<E>
    ArrayList是没实现,但他的父类AbstractList实现了
      

  3.   

    iterator 迭代器任何集合都可以去遍历它,但是因为list集合它是有序的,所以可以根据索引去遍历,
    无需一定要迭代器,但是set集合它是无序的,无索引,所以只能通过迭代器去遍历