java基础——迭代器

Posted zsbenn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础——迭代器相关的知识,希望对你有一定的参考价值。

对 Collection 进行迭代的类,称其为迭代器。

迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。

如何获取迭代器?Collection接口中定义了获取集合类迭代器的方法(iterator()),所以所有的Collection体系集合都可以获取自身的迭代器。

每个集合子类都对iterator()进行了重写

 

iterator接口定义的方法

Itreator    该接口是集合的迭代器接口类,定义了常见的迭代方法
    1:boolean hasNext()  判断集合中是否有元素,如果有元素可以迭代,就返回true。
    2: E next()        返回迭代的下一个元素,注意: 如果没有下一个元素时,调用next元素会抛出NoSuchElementException
    3: void remove()    从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。

 

迭代器遍历/清空集合

public static void main(String[] args) {
        ArrayList list = new ArrayList();
        // 增加:add() 将指定对象存储到容器中
        list.add("计算机网络");
        list.add("现代操作系统");
        list.add("java编程思想");
        list.add("java核心技术");
        list.add("java语言程序设计");
        System.out.println(list);
        Iterator it = list.iterator();
        while (it.hasNext()) {
            String next = (String) it.next();
            System.out.println(next);
        }
    }
public class Demo1 {
    public static void main(String[] args) {
        Collection coll = new ArrayList();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
        System.out.println(coll);
        Iterator it = coll.iterator();
        while (it.hasNext()) {
            it.next();
            it.remove();
        }
        System.out.println(coll);
    }
}

 

https://www.cnblogs.com/cao-yin/p/9643296.html 常用迭代器遍历大全

迭代器遍历List,Set

 

List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        Iterator<String> iterator = list.iterator();
        while(iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
Set<String> set = new HashSet<String>();
        set.add("c");
        set.add("d");
        Iterator<String> iteratorSet = set.iterator();
        while (iteratorSet.hasNext()){
            String next = iteratorSet.next();
            System.out.println(next);
        }

迭代器遍历Map

Map<Integer,String> map = new HashMap<Integer, String>();
        Set<Map.Entry<Integer, String>> entries = map.entrySet();
        Iterator<Map.Entry<Integer, String>> iteratorMap = entries.iterator();
        while (iteratorMap.hasNext()){
            Map.Entry<Integer, String> next = iteratorMap.next();
            System.out.println(next);
        }

当然也可以通过Set<K> s = map.keySet();得到键值set后进行遍历

以上是关于java基础——迭代器的主要内容,如果未能解决你的问题,请参考以下文章

JAVA基础——集合Iterator迭代器的实现

java基础-迭代器(Iterator)与增强for循环

java基础知识5--集合类(Set,List,Map)和迭代器Iterator的使用

java基础(17)集合类(1:Collection)

Java基础72问:java迭代器的方法

java基础(18):集合Iterator迭代器增强for循环泛型