JAVA集合--迭代器Iterator篇

Iterator 迭代器概述

Collection 继承了Iterable接口,间接继承了Iterator 接口,实现对集合的遍历功能。

Iterator 接口提供方法

boolean hasNext()
如果仍有元素可以迭代,则返回 true。
Object next()
返回迭代的下一个元素。
void remove()
删除集合上一次next方法返回的元素
void forEachRemaining(Consumer action)
java8新工能,通过lambda表达式遍历集合

案例

    //1. Collectin 的子接口set|list |queue都可以这样使用(list为例)
    List collection = new LinkedList();
    Iterator iterator =collection.iterator();
    while(iterator.hasNext()){
        System.out.println(iterator.next());
    }
    //2. list 集合实现了ListIterator接口也可以这样使用
    List collection = new LinkedList();
    ListIterator iterator =collection.ListIterator();
    //ListIterator iterator =collection.ListIterator(index);
    while(iterator.hasNext()){
        System.out.println(iterator.next());
    }
    //3.Map集合
    Map map = new TreeMap();
    //遍历值
    Collection collection =map.values() ;   
    Iterator iterator =collection.iterator();

    while(iterator.hasNext()){
        System.out.println(iterator.next());
    }
    //按键遍历
    Set keys =map.keySet();
    Iterator iterator =keys .iterator();
    while(iterator.hasNext()){
        System.out.println(iterator.next());
    }

注意点

1.遍历的时候不可以修改集合
2.删除元素只能通过remove()方法删除


    List list = new LinkedList();
    list.add(1);
    list.add(2);
    list.add(3);
    System.out.println(list);//输出: [1,2,3]

    ListIterator iterator =list.listIterator();

    while(iterator.hasNext()){
        iterator.next();// 必须调用 
        iterator.remove();
    }

    System.out.println(list);//输出: [1,2,3]

猜你喜欢

转载自blog.csdn.net/u012442381/article/details/80028929