Java_迭代器_浅析

0、迭代器用法:

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


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

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

常用的数据容器,如ArrayList、HashSet、Stack、Vector等等都是实现了该接口;

2、Iterator迭代器介绍:java.util.Iterator;

先说说Iterator跟Iterable的区别;

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

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

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

     这种方法不具备多态性,即设定好了该如何执行hasNext()等操作,而且程序会显得十分的臃肿和复杂。但是如果采用实施Iterable()接口和返回Iterator对象的方式,则会全然的不同,只要能够返回Iterator对象,完全可以自己的需要进行遍历方式上的自由定义。

    

你可能感兴趣的:(Java_迭代器_浅析)