A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奔跑的喜牛 中级黑马   /  2016-6-7 22:54  /  474 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

:迭代器原理
        * 迭代器原理:迭代器是对集合进行遍历,而每一个集合内部的存储结构都是不同的,所以每一个集合存和取都是不一样,那么就需要在每一个类中定义hasNext()和next()方法,这样做是可以的,但是会让整个集合体系过于臃肿,迭代器是将这样的方法向上抽取出接口,然后在每个类的内部,定义自己迭代方式,这样做的好处有二,第一规定了整个集合体系的遍历方式都是hasNext()和next()方法,第二,代码有底层内部实现,使用者不用管怎么实现的,会用即可
:迭代器源码解析
        * 1,在eclipse中ctrl + shift + t找到ArrayList类
        * 2,ctrl+o查找iterator()方法
        * 3,查看返回值类型是new Itr(),说明Itr这个类实现Iterator接口
        * 4,查找Itr这个内部类,发现重写了Iterator中的所有抽象方法
迭代器原理图:
    集合中存放元素,想要操作元素,在集合内部操作最方便,所以就定义了一个内部类,完成取出动作的定义,而每个容器中都有内部类,发现以后再产生容器还得定义内部类,干脆抽取出一个接口
    每个容器中都有存和取的方式,而且因为每个容器的数据结构不同,所以他们存和取的动作也有可能实现的方式不一样,虽然都具备存和取的动作,但是底层的数据结构不同,存取方式也不同,具体实现方式不一样,每个集合都具备取出方式,而这个方式不足以用一个方法来描述,不像添加那么简单,去之前要判断有没有,有就取,没有就不取,所以对于取出不足以用一个方法来描述,就将取出动作封装成对象.


2 个回复

倒序浏览
总结很详细收起来啦
回复 使用道具 举报
总结的挺不错的,当复习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马