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

相關文章
相關標籤/搜索