classDiagram
%% ===========================
%% 顶层接口
%% ===========================
class Iterable {
<<interface>>
}
class Collection {
<<interface>>
}
class Map {
<<interface>>
}
Iterable <|-- Collection
%% Map 不属于 Collection 家族
%% ===========================
%% Collection 子接口
%% ===========================
class List {
<<interface>>
}
class Set {
<<interface>>
}
class Queue {
<<interface>>
}
class Deque {
<<interface>>
}
Iterable <|-- Collection
Collection <|-- List
Collection <|-- Set
Collection <|-- Queue
Queue <|-- Deque
%% ===========================
%% 有序/可导航 Set & Map
%% ===========================
class SortedSet {
<<interface>>
}
class NavigableSet {
<<interface>>
}
Set <|-- SortedSet
SortedSet <|-- NavigableSet
class SortedMap {
<<interface>>
}
class NavigableMap {
<<interface>>
}
Map <|-- SortedMap
SortedMap <|-- NavigableMap
%% ===========================
%% 抽象类
%% ===========================
class AbstractCollection {
<<abstract>>
}
class AbstractList {
<<abstract>>
}
class AbstractSequentialList {
<<abstract>>
}
class AbstractSet {
<<abstract>>
}
class AbstractQueue {
<<abstract>>
}
class AbstractMap {
<<abstract>>
}
Collection <..|> AbstractCollection
AbstractCollection <|-- AbstractList
AbstractList <|-- AbstractSequentialList
AbstractCollection <|-- AbstractSet
AbstractCollection <|-- AbstractQueue
Map <..|> AbstractMap
%% ===========================
%% List 实现类
%% ===========================
class ArrayList
class Vector
class Stack
class LinkedList
AbstractList <|-- ArrayList
AbstractList <|-- Vector
Vector <|-- Stack
AbstractSequentialList <|-- LinkedList
LinkedList ..|> List
LinkedList ..|> Deque
LinkedList ..|> Queue
%% ===========================
%% Set 实现类
%% ===========================
class HashSet
class LinkedHashSet
class TreeSet
AbstractSet <|-- HashSet
HashSet <|-- LinkedHashSet
AbstractSet <|-- TreeSet
TreeSet ..|> NavigableSet
%% ===========================
%% Queue/Deque 实现类
%% ===========================
class PriorityQueue
class ArrayDeque
AbstractQueue <|-- PriorityQueue
PriorityQueue ..|> Queue
AbstractCollection <|-- ArrayDeque
ArrayDeque ..|> Deque
%% ===========================
%% Map 实现类
%% ===========================
class HashMap
class LinkedHashMap
class TreeMap
class Hashtable
class Properties
AbstractMap <|-- HashMap
HashMap <|-- LinkedHashMap
AbstractMap <|-- TreeMap
TreeMap ..|> NavigableMap
AbstractMap <|-- Hashtable
Hashtable <|-- Properties
拆分:
classDiagram
class Iterable {
<<interface>>
}
class Collection {
<<interface>>
}
class Map {
<<interface>>
}
Iterable <|-- Collection
Collection <|-- List
Collection <|-- Set
Collection <|-- Queue
Queue <|-- Deque
Set <|-- SortedSet
SortedSet <|-- NavigableSet
Map <|-- SortedMap
SortedMap <|-- NavigableMap
class List { <<interface>> }
class Set { <<interface>> }
class Queue { <<interface>> }
class Deque { <<interface>> }
class SortedSet { <<interface>> }
class NavigableSet { <<interface>> }
class SortedMap { <<interface>> }
class NavigableMap { <<interface>> }
List系列:
classDiagram
class List { <<interface>> }
class AbstractCollection { <<abstract>> }
class AbstractList { <<abstract>> }
class AbstractSequentialList { <<abstract>> }
AbstractCollection <|-- AbstractList
AbstractList <|-- AbstractSequentialList
AbstractList <|-- ArrayList
AbstractList <|-- Vector
Vector <|-- Stack
AbstractSequentialList <|-- LinkedList
LinkedList ..|> List
List <..|> AbstractList
List <..|> LinkedList
Set系列
classDiagram
class Set { <<interface>> }
class SortedSet { <<interface>> }
class NavigableSet { <<interface>> }
class AbstractCollection { <<abstract>> }
class AbstractSet { <<abstract>> }
Set <|-- SortedSet
SortedSet <|-- NavigableSet
AbstractCollection <|-- AbstractSet
AbstractSet <|-- HashSet
HashSet <|-- LinkedHashSet
AbstractSet <|-- TreeSet
TreeSet ..|> NavigableSet
TreeSet ..|> SortedSet
Map系列
classDiagram
class Map { <<interface>> }
class SortedMap { <<interface>> }
class NavigableMap { <<interface>> }
Map <|-- SortedMap
SortedMap <|-- NavigableMap
class AbstractMap { <<abstract>> }
AbstractMap <|-- HashMap
HashMap <|-- LinkedHashMap
AbstractMap <|-- TreeMap
TreeMap ..|> NavigableMap
AbstractMap <|-- Hashtable
Hashtable <|-- Properties
gpt: 我给你画成“接口层次图 + 常见实现类继承图”两部分,用文本树形结构表示,方便直接粘贴到笔记里。
Iterable<E>
│
┌──────┴────────┐
│ │
Collection<E> Map<K,V> ← 注意:Map 不属于 Collection 家族
(“容器”) (关联容器)
Collection<E> 家族:
Collection<E>
├─ List<E> (顺序容器,类似 C++ vector/list)
├─ Set<E> (集合容器,类似 C++ set/unordered_set)
└─ Queue<E> (队列/优先队列)
│
└─ Deque<E> (双端队列,类似 C++ deque)
Set & Map 的“有序/可导航”子接口:
Set<E>
└─ SortedSet<E>
└─ NavigableSet<E>
Map<K,V>
└─ SortedMap<K,V>
└─ NavigableMap<K,V>
可以粗略对应到 C++ STL 的感觉:
List ⇔ std::vector / std::list 这类“线性序列容器”Set / SortedSet / NavigableSet ⇔ std::set / std::multiset 等Map / SortedMap / NavigableMap ⇔ std::map / std::multimapHashMap / HashSet 这类(见下面实现类)可类比 std::unordered_map / std::unordered_set