Iterator、ListIterator、foreach、Enumeration

来源:互联网 发布:linux 更新grub命令 编辑:程序博客网 时间:2024/06/01 09:41

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


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

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

迭代输出:Iterator

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

public interface Iterator<E>{    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<String> all = new ArrayList<String >();        all.add("A");        all.add("B");        all.add("C");        ListIterator<String> 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<String> list = new ArrayList<String>();        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<E>{    public boolean hasMoreElments();//判断是否有下一个元素    public E nextElment();//取出当前元素    }
0 0
原创粉丝点击