• 技术文章 >头条

    java迭代器原理分析

    小妮浅浅小妮浅浅2021-02-25 10:02:20原创3100

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    1.迭代器的好处

    (1)迭代器可以提供统一的迭代方式。

    (2)迭代器也可以在对客户端透明的情况下,提供各种不同的迭代方式。

    (3)迭代器提供一种快速失败机制,防止多线程下迭代的不安全操作。

    不过对于第三点尚需注意的是:我们不能保证迭代过程中出现“快速失败”的都是因为同步造成的,因此为了保证迭代操作的正确性而去依赖此类异常是错误的!

    2.迭代器模式的原理

    说明

    (1)Iterator :迭代器接口,是系统提供,含义 hasNext、next、remove

    (2)ConcreteIterator :具体的迭代器类,管理迭代。

    (3)Aggregate :一个统一的聚合接口,将客户端和具体聚合解耦。

    (4)ConcreteAggreage :具体的聚合持有对象集合,并提供一个方法,返回一个迭代器,该迭代器可以正确遍历集合

    (5)Client :客户端,通过Iterator和Aggregate依赖子类。

    3.源码分析

    ArrayList中迭代器的具体实现如下:

    public interface Inteator {
    public abstract boolean hasNext();
    public abstract Object next();
    }
    public interface Iterable {
    Iterator iterator();
    }
    public interface Collection extends Iterable {
    Iterator iterator();
    }
    public interface List extends Collection {
    Iterator iterator();
    }
    public calss ArrayList implements List {
    public Iterator iterator() {
    return new Itr();
    }
    private class Itr implements Iterator { //接口的具体实现类
    //包含了 所需功能  next()    hasNext() 等
    }
    }
    //编译看左边,运行看右边~~~

    以上就是java迭代器的原理分析,相信大家经过本篇的学习,已经对迭代过程和接口的一些用法有所掌握。对于其基本组成部件还没有理解的,可以多看看上方的图解。

    专题推荐:java迭代器原理
    品易云
    上一篇:js中jquery动画移动到最右边 下一篇:js中this指向有几种情况

    相关文章推荐

    • this在java中使用构造方法的分析• JavaPoet基本用法整理• implements在java中实现接口的方法• java迭代器的基本概念• java迭代器iterator是什么意思

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网