黑马程序员技术交流社区

标题: 迭代器相当重要 [打印本页]

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



作者: mz585858    时间: 2016-6-7 22:59
总结很详细收起来啦
作者: jianhua0798    时间: 2016-6-7 23:15
总结的挺不错的,当复习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2