在我们编程中使用比较多的对象是集合,不得不承认我只仅限于了解几个常用的集合,比如:ArrayList,HashMap等。要是了解集合里面实现的细节,我相信会更加利于我们编写高效的代码。
我私自把实现(impletements)定义为徒弟,把继承(extends)定义为后代。徒弟是指学习祖先的某些能力,后代是遗传祖先的某些特性和能力。这样不管是徒弟还是后代都拥有祖先的一些能力。Collection家族祖先师承Iterable,所以家族后代都有Iterable的能力——迭代。
Collection的第一代后代:Set、List、Queue;
第一代徒弟:AbstractCollection。
set家:SortedSet:NavigableSet。
List家:全是徒弟。
Queue家:DeQueue。
AbstractCollection家: AbstractQueue: PriorityQueue;
ArrayQueue;
AbstractList: ArrayList;
AbstractSequentiaList:LinkedList;
SubList: RandomAccessSubList;
Vector:Stack;
AbstractSet:HashSet:LinkedHashSet;
TreeSet;
EnumSet:RegularEnumSet;
JumboEnumSet。
师承关系比较复杂,直接看UML图:
今天就到这里,为了生成这张图,缕清关系,可费劲,下篇将进一步介绍集合。