2016-11-14 集合输出

时间:2021-11-03 04:49:09

前言:Collection、List、Set三个接口里面,只有List接口是最方便进行输出操作的,所以这里给出集合的四种输出形式。

一、迭代Iterator

       集合在JDK1.8之前支持四种输出方式:Iterator(95%)、ListIterator(0.05%)、Enumeration(4.9%)、foreach(0.05%).

       API接口定义:public interface Iterator<E>;

         定义的主要方法:public boolean hasNext(),public E next();

       Iterator本事是一个接口,如果想去的本接口实例化只能依靠Collection接口,在Collection接口定义有这样的一个操作:public Iterator<E> iterator();

范例代码:

package cn.mldn.demo26;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TestDemo {
    public static void main(String[] args) {
        Set<String> all = new HashSet<String>();
        all.add("中国");
        all.add("美国");
        all.add("英国");
        Iterator<String> iter = all.iterator();
        while(iter.hasNext()){
            String str = iter.next();
            System.out.println(str);
        }
    }
}

运行结果:

2016-11-14 集合输出

二、双向迭代:ListIterator(了解)

       Iterator本身只具备由前向后的输出(99%的情况下都是这样做的),但是由于实际操作的需要,需要支持双向输出:可以由前向后也可以由后向前输出。那么就可以使用Iterator接口的子接口:ListIterator接口:

      主要的方法:

      |-public boolean hasPrevious();判断是否有前一个元素;

      |-public E previous():取得钱一个元素;

      ListIterator是专门为List子接口定义的输出接口,方法:public ListIterator<E>listIterator();

范例代码:

package cn.mldn.demo26;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class TestDemo_01 {
    public static void main(String[] args) {
        List<String> all = new ArrayList<String>();
        all.add("A");
        all.add("B");
        all.add("C");
        all.add("D");
        ListIterator<String> iter = all.listIterator();
        while(iter.hasNext()){
            String str = iter.next();
            System.out.print(str+"、");
        }
        System.out.println("\n由后向前输出");
        while(iter.hasPrevious()){
            System.out.print(iter.previous()+"、");
        }
    }
}

运行结果:

2016-11-14 集合输出

★★特别提醒:如果要实现由后向前输出的操作之前,一定要首先发生由前向后的输出。

三、forearch输出

       foreach不关是能够简便输出数组,对于集合也是可以的。

范例代码:

package cn.mldn.demo26;
import java.util.ArrayList;
import java.util.List;
public class TestDemo_02 {
    public static void main(String[] args) {
        List<String> all = new ArrayList<String>();
        all.add("A");
        all.add("B");
        all.add("C");
        all.add("D");
        for(String str:all){
            System.out.print(str);
        }
    }
}

运行结果:

2016-11-14 集合输出

四、Enumeration输出

      Enumeration是Vector类一起在JDK1.0的时候退出的输出接口,即:最早的Vector如果要想输出就需要使用Enumeration接口完成,那么此接口定义如下:

      public interface Enumeration<E>

      重要方法:public boolean hasMoreElements()--判断是否有下一个元素,等同于hasNext();

                   public E nextElement()—取出当前元素,等同于next();

      如果要取得Enumeration接口实例化对象只能依靠Vector子类。

     Vector子类里面定义如下的操作方法:public Enumeration<E> elements();

范例代码:

package cn.mldn.demo26;
import java.util.Enumeration;
import java.util.Vector;
public class TestDemo_03 {
    public static void main(String[] args) {
        Vector<String> all = new Vector<String>();
        all.add("A");
        all.add("B");
        all.add("C");
        all.add("D");
        Enumeration<String> enu = all.elements();
        while(enu.hasMoreElements()){
            String str = enu.nextElement();
            System.out.print(str);
        }
    }
}

运行结果:

2016-11-14 集合输出

总结:对于输出集合的操作中,重点以Iterator与Enumeration为主,并且记住两个接口常用的一些方法。