前言
Java集合框架是指java的集合类。Collection
接口是一组允许重复
的对象。Set
接口继承 Collection,但不允许重复
,使用自己内部的一个排列机制。 List
接口继承 Collection,允许重复
,以元素安插的次序来放置元素,不会重新排列。Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key
。拥有自己的内部排列机制。
java基础集合框架图
从上面的集合类继承图可以看出,集合类主要分为两大类:Collection和Map。
Collection 接口
1 | public interface Collection<E> extends Iterable<E> { |
Collection是List、Set等集合高度抽象出来的接口,它包含了这些集合的基本操作,它主要又分为两大部分:List和Set。
AbstractCollection 源码
1 | public abstract class AbstractCollection<E> implements Collection<E> { |
抽象类AbstractCollection实现了Collection接口,并实现了若干方法,子类只需要实现抽象方法iterator()
,size()
及默认实现方法add(E e)
。在方法add(E e)
中,只是简单的抛出了异常,具体实现逻辑还需要子类去实现。AbstractCollection是典型的缺省适配器模式
的应用,子类只需直接继承该抽象类,并实现自己需要的方法即可,而不用实现接口中的全部抽象方法。