百聞不如一見。這張經典的集合框架架構圖,清晰呈現 Collection/Map 兩大體系的介面繼承、實現類分佈、歷史遺留類 (Vector, Hashtable) 與現代並發類 (ConcurrentHashMap, CopyOnWriteArrayList) 的位置關係。
Collection, List, Set, Queue, Map 等)AbstractList, AbstractSet, AbstractMap 等)ArrayList, HashMap, TreeSet 等)implements)extends)Vector, Stack, Hashtable, Dictionary)ConcurrentHashMap, ConcurrentSkipListMap, CopyOnWriteArrayList 等)List/Set/Queue 分離語義,面向介面編程AbstractCollection 實作通用邏輯 (toString, containsAll 等),子類只需實作核心抽象方法Collections.synchronizedXxx(), unmodifiableXxx(), checkedXxx() 動態增強Collections.emptyList(), singleton(), nCopies() 返回優化實例將此圖存為桌面壁紙或 IDE 邊欄參考,遇到選型猶豫時一瞥即得答案。