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