Collection作为一个集合类的顶层接口,他没有直接的子类实现,而是通过实现它的子接口来实现集合容器。Collection的特点是作为一个容器,他可以轻松的帮用户实现数据存储,动态扩容,还有方便的元素遍历和快速的增删改查等操作,这些特点都在接口定义的方法中一一体现出来,相比我们用array来存储数据方便不少。
Collection的子接口主要是三大类分别是List,Set和Queue。这三个接口各有特点。
是一个顺序存放的容器,他会保存元素的插入顺序,当然元素也可以通过下标位置直接插入和删除。List容器同时允许重复的元素插入和多个null元素。List提供了一个特殊的iterator,叫做ListIterator,这个接口在上文中也有所描述,可以进行双向遍历元素。
集合最大的特点是元素不能重复,所有元素都是唯一的存在。Set集合不保证维护元素的顺序。
顾名思义就是队列,队列最大的特点就是FIFO先进先出,与之对应的有栈Stack后进先出。Queue在Collection的基础之上又新增加了几个方法:
offer(E e)与add方法类似,但是当容器存量超出达到上限以后,会插入失败,而报异常。这个方法推荐使用。
poll()返回并且删除队列的头元素,如果队列为空,返回null
element()返回但不删除头元素,如果队列为空,会报异常。
peek()返回但不删除头元素,如果队列为空,返回null。
本文对容器的顶层接口Collection及其子接口做了介绍,在这个接口的规范下,衍生出了非常多的子类,这些子类都风格迥异,各有千秋。但总体来说就是为了满足对容器内部元素的不同操作,无非就是快速存储,读取遍历,排序等等。后面的文章会逐一对其介绍。