Iterator、ListIterator、foreach、Enumeration

30 篇文章 0 订阅
13 篇文章 0 订阅

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();//取出当前元素
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值