前面一篇的corejava讲的是集合的概述,这一篇我将详细的和大家讲解一下Collection下面的List、set、queue这三个子接口。希望大家能得到提升。

1.1、List接口概述

  List类型集合特点:集合中的元素有序且可重复,有下标 。

    注:有序指的是元素放到集合中的顺序和循环遍历出来的顺序一致

  List接口常见的实现类有:ArrayList、LinkedList、Vector等

    对于数据的随机访问,ArrayList效率优于LinkedList,因为LinkedList要移动指针

    对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据

    Vector是线程安全的集合,但是速度慢

1.2、迭代器

  在讲集合之前我们先来说一下迭代器,因为之后我们遍历数据的时候要用到迭代器。

  1)迭代器原理

    迭代器是对集合进行遍历,而每一个集合内部的存储结构都是不同的,所以每一个集合存和取都是不一样,那么就需要在每一个类中定义hasNext()和next()方法,这样做是可以的,

  但是会让整个集合体系过于臃肿,迭代器是将这样的方法向上抽取出接口,然后在每个类的内部,定义自己迭代方式,这样做的好处有二,第一规定了整个集合体系的遍历方式都是hasNext()和next()方法,第二,代码有底层内部实现,使用者不用管怎么实现的,会用即可 。

  我们可以去查看一下ArrayList中迭代器的源码进行分析:  

1,在eclipse中ctrl + shift + t找到ArrayList类
2,ctrl+o查找iterator()方法
3,查看返回值类型是new Itr(),说明Itr这个类实现Iterator接口
4,查找Itr这个内部类,发现重写了Iterator中的所有抽象方法
Viewstep

相关文章: