Iterator、ListIterator、foreach、Enumeration


Java集合的四种输出操作形式


Collection、List、Set三个接口中只有List接口是最方便进行输出操作,集合在jdk1.8之前支持四种输出,之后支持5种输出。

- Iterator
- ListIterator
- Enumeration
- foreach
Iterator是用到最多的,Enumeration也是很关键的,虽然用的较少。

迭代输出:Iterator

一般来说,遇到集合操作就用Iterator接口进行集合的输出操作。Iterator本身是一个接口,定义中也增加了泛型操作。定义如下:

public interface Iterator{
    public boolean hasNext();
    public E next();
    }

之前使用的Scanner就是Iterator的子类,因为Iterator本身是一个接口,要想取得本接口实例化,只能依靠Collection接口。

  • 所有实现Collection接口的容器类都有一个Iterator方法,用于返回一个实现了Iterator接口的对象
  • Iterator对象成为迭代器,用来实现对容器内元素的遍历操作。
  • Iterator接口定义了三个方法
    • hasNext()
    • next()
    • remove()

双向迭代输出ListIterator

Iterator只能是从前向后迭代输出,如果想要双向的迭代输出,可以使用ListIterator。但是,ListIterator的使用是有前提的:
**在进行由后向前的输出之前必须要先进行由前向后的输出**,要不然输出的结果是空。
public class TestList {
    public static void main(String[] args) throws Exception{
        List all = new ArrayList();
        all.add("A");
        all.add("B");
        all.add("C");
        ListIterator it = all.listIterator();
        System.out.print("由前向后输出:");
        while (it.hasNext()) {
            String str = it.next();
            System.out.print(str+"、");
        }
        System.out.print("\n有后向前输出:");
        while(it.hasPrevious()){
            System.out.print(it.previous()+"、");
        }
    }
}

foreach输出

在学习数组时,foreach可以方便输出数组,也可以对集合进行方便的输出。举个简单例子:
public class TestForeach {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("A");
        list.add("B");
        list.add("C");
        for(String str :list){
            System.out.println(str);
        }
    }
}

Enumeration输出

Enumeration时与Vector类一起在JDK1.0的时候推出的输出接口,即:
最早的Vector如果想要输出就需要使用Enumeration完成。
Enumeration接口的定义如下:
public interface Enumeration{
    public boolean hasMoreElments();//判断是否有下一个元素
    public E nextElment();//取出当前元素
    }

你可能感兴趣的:(菜鸟日记,JAVA,Jave,SE基础)