java集合类(七)Iterator应用实例

(1)Iterator迭代器应用实例:
 import java.util.*;
public class array {
    public static void main(String[] args)
    {
        ArrayList a=new ArrayList();
        a.add(new Poind(3,4));
        a.add(new Poind(3,6));
        a.add(new Poind(3,5));
        a.add(new Poind(6,7));
        Iterator it=a.iterator();  //由接口间接实例对象,a.iterator返回一个Iterator;
        it.next();    //返回一个元素到迭代器
        it.remove();   //删除迭代器中上一个元素的返回值;
        while(it.hasNext())
            System.out.println(it.next()); //打印输出跌带器每个元素的值;
       
       
    }
 
}
class Poind{
    int x,y;
    Poind(int x,int y)
    {
        this.x=x;
        this.y=y;
    }
    public String toString()
    {
        return "x="+x+"   "+"y="+y;
    }
}
(2)Iterator优点(可创建一个方法直接打印输出一个数据集合中所有的元素)
import java.util.*;
public class array {
    public static void ptintElements(Collection c)  //以一个集合接口对象为参数;
    {
        Iterator i=c.iterator();    //可用接口定义一个空对象;
        while(i.hasNext())
            System.out.println(i.next());
    }
    public static void main(String[] args)
    {
        ArrayList a=new ArrayList();
        a.add(new Poind(3,4));
        a.add(new Poind(3,6));
        a.add(new Poind(3,5));
        a.add(new Poind(6,7));
        array.ptintElements(a);
       
       
       
    }
 
}
class Poind{
    int x,y;
    Poind(int x,int y)
    {
        this.x=x;
        this.y=y;
    }
    public String toString()
    {
        return "x="+x+"   "+"y="+y;
    }
}

(3)如果应用Java集合框架,很多时候都会用到Iterator接口类型的对象对集合中的元素进行遍历。但寻遍Java API帮助文档,却找不到任何类实现了Iterator接口。那么到底是谁实现了这个接口呢?

其实,因为不同集合实现类后台工作的数据结构有所不同,所以没有办法用一个类来实现Iterator接口,可以使之适用于所有集合。这样,实现Iterator接口的任务就落到了集合实现类自己身上。

由于实现了Iterator接口的类仅与具体的集合实现类有关,所以这个类被设计成了匿名内部类,也正因为这样我们在帮助文档中看不到这个类的说明。

你可能感兴趣的:(java基础)