在咱們編程中使用比較多的對象是集合,不得不認可我只僅限於瞭解幾個經常使用的集合,好比: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圖:
今天就到這裏,爲了生成這張圖,縷清關係,可費勁,下篇將進一步介紹集合。