美文网首页
No.2 Iterator迭代器

No.2 Iterator迭代器

作者: 醒着的码者 | 来源:发表于2016-04-10 22:21 被阅读33次

    java对迭代器的定义:

    (1)集合Collection的实现类(List/Set)以及子类,都拥有一个方法:Iterator<E> iterator()
    (2)Iterator是集合框架中独立的一个接口。java对Iterator是这样定义的:
    对 collection 进行迭代的迭代器。
    (3)由API可以看出来,是Collection实现了Iterator接口。
    (4)迭代器的泛型指定必须与应用他的集合泛型相同。

    迭代提供的方法:

    (1)Object next():返回迭代器刚越过的元素的引用,返回值是Object
    (2)boolean hasNext():判断容器内是否还有可供访问的元素
    (3)void remove():删除迭代器刚越过的元素

    可以看出迭代器初始指的为位置为集合的首元素之前,使用一次next()方法将越过第一元素,指向第二个之前。而对应remove方法则删除的是刚越过的那个元素:

        Iterator<String> it = c.iterator();
        it.next();
        it.remove()
    

    集合中迭代方法:

    方法1:for循环

    for(Iterator<String> it = c.iterator();it.hasNext();){
    }
    

    方法2:while循环

        Iterator<String> it = c.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    

    两者差异在于前者把Iterator定义为局部变量,用完即释放;而后者则定义为成员变量,需要等该方法运行完菜释放;由此可见推荐使用方法1.

    相关文章

      网友评论

          本文标题:No.2 Iterator迭代器

          本文链接:https://www.haomeiwen.com/subject/xxemlttx.html