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(); }
經常使用的數據容器,如ArrayList、HashSet、Stack、Vector等等都是實現了該接口;code
二、Iterator迭代器介紹:java.util.Iterator;對象
先說說Iterator跟Iterable的區別;接口
Iterable<T>是迭代器與數據容器的接口,即數據容器要使用Iterator,就必須實現Iterable;rem
Iterator<T>是迭代器的接口,須實現hasNext(),next(),remove(),三個元素方法;源碼
爲何在Iterable接口裏面的方法不是直接定義三個方法?it
這種方法不具有多態性,即設定好了該如何執行hasNext()等操做,並且程序會顯得十分的臃腫和複雜。可是若是採用實施Iterable()接口和返回Iterator對象的方式,則會全然的不一樣,只要可以返回Iterator對象,徹底能夠本身的須要進行遍歷方式上的自由定義。class