package com.java.test;

import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; import java.util.Vector;

public class Test2 {

    /**
     * 遍历集合的几种方式
     */
    public static void main(String[] args) {
            ArrayList<String> al = new ArrayList<>();
            al.add("wo");
            al.add("zai");
            al.add("heima");
            al.add("xuexi");
            al.add("java");
            
            //demo1(al);
            
            //demo2(al);
            
            //demo3(al);
            
            //demo4();
            
            demo5(al);
    }

    //方式五:用增强for循环遍历(推荐使用)
    private static void demo5(ArrayList<String> al) {
            for (String string : al) {
                    System.out.print(string);
            }
    }
    
    //方式四:通过Vector方式迭代(不建议使用)
    private static void demo4() {
            Vector<String> ve = new Vector<>();
            ve.add("wo");
            ve.add("zai");
            ve.add("heima");
            ve.add("xuexi");
            ve.add("java");
            Enumeration<String> en = ve.elements();                        //获取枚举
            while(en.hasMoreElements()) {                        //判断集合中是否有元素
                    System.out.print(en.nextElement());//获取集合中的元素
            }
    }
    
    //方式三:通过size()方法和get()方式实现遍历
    private static void demo3(ArrayList<String> al) {
            for(int i = 0; i < al.size(); i++) {
                    System.out.print(al.get(i));
            }
    }
    
    //方式二:通过迭代器遍历集合
    private static void demo2(ArrayList<String> al) {
            Iterator<String> it = al.iterator();
            while(it.hasNext()) {
                    System.out.print(it.next());
            }
    }

    //方式一:把集合转成数组,然后遍历数组
    private static void demo1(ArrayList<String> al) {
            Object[] arr = al.toArray();
            
            for (int i = 0; i < arr.length; i++) {
                    System.out.print(arr[i]);
            }
    }

}