集合迭代器

1、集合输出
遍历集合的方式有以下几种:
1、Iterator
2、ListIterator
3、Enumeration
4、foreach
其中Iterator使用率最高,在jdk1.5后新增的foreach也被大量使用

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

public class IteratorDemo {

    public static void main(String[] args) {
        Cat c1 = new Cat("喵喵",3,2);
        Cat c2 = new Cat("花花",4,1);
        Cat c3 = new Cat("楠楠",5,4);
        Cat c4 = new Cat("喵喵",3,2);
        List<Cat> sets = new ArrayList<>();
        sets.add(c1);
        sets.add(c2);
        sets.add(c3);
        sets.add(c4);
        
        //iterator1(sets);
        //iterator(sets);
        //enumeration();
        foreach();
    }
    
    //foreache迭代(1.5之后)
    public static void iterator1(Collection<Cat> c) { //参数是:Collection采集器即集合的总接口,可以代表任何List或Set接口的实现类
        for(Cat cats:c) {
            System.out.println(cats);
        }
        
    }
    
    //Iterator迭代(1.5之前统一的对数组迭代的方式)
    public static void iterator(Collection<Cat> c) {
        Iterator ite = c.iterator();
        while(ite.hasNext()) {
            System.out.println(ite.next());
        }
    }
    
    //enumeration方式迭代,通常对Vector对象的数组进行迭代
    public static void enumeration() {
        Vector<String> ve = new Vector<>();
        ve.add("Lily");
        ve.add("Jerry");
        ve.add("Tom");
        ve.add("Bob");
        Enumeration en=ve.elements();
        while(en.hasMoreElements()) {
            System.out.println(en.nextElement());
        }
    }
    
    
    //jdk1.8之后新增特性Consumer接口实现迭代,forEach()方法
    public static void foreach() {
        List<String> list = new ArrayList<>();
        list.add("Lily");
        list.add("Jerry");
        list.add("Tom");
        list.add("Bob");
        //Consumer接口:因为consume接口只有一个抽象方法,void accept(T t)抽象方法需要传入一个参数; 因此可以用
lambda表达式的方式实现该接口
        //forEach()方法里又传入的是Consumer接口;所以可以变量的传入一个lambda表达式来具体实现
        //no.1:lambda参数的类型是和list的类型一致的
        list.forEach((String s)->{System.out.println(s);});
        //no.2
        list.forEach(s->System.out.println(s));
        //no.3:参数可以省略如下格式:
        list.forEach(System.out::println);
    }
    
}

猜你喜欢

转载自blog.csdn.net/weixin_34249678/article/details/87073914
今日推荐