Java_迭代器_浅析

0、迭代器用法:java

List<T> list = new ArrayList<T>();
/*
*list的相关操做;
*/
Iterator<T> iterator= list.iterator();
while(iterator.hasNext()){
    T o=iterator.next();
    //iterator.remove();
}


一、Java迭代器提供的接口定义:java.lang.Iterable;spa

public interface Iterable<T> {//jdk源码
    Iterator<T> iterator();
}

经常使用的数据容器,如ArrayListHashSetStackVector等等都是实现了该接口;code

二、Iterator迭代器介绍:java.util.Iterator;对象

先说说Iterator跟Iterable的区别;接口

    Iterable<T>是迭代器与数据容器的接口,即数据容器要使用Iterator,就必须实现Iterable;rem

    Iterator<T>是迭代器的接口,须实现hasNext(),next(),remove(),三个元素方法;源码

为何在Iterable接口里面的方法不是直接定义三个方法?it

     这种方法不具有多态性,即设定好了该如何执行hasNext()等操做,并且程序会显得十分的臃肿和复杂。可是若是采用实施Iterable()接口和返回Iterator对象的方式,则会全然的不一样,只要可以返回Iterator对象,彻底能够本身的须要进行遍历方式上的自由定义。class

相关文章
相关标签/搜索