集合体系

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: 我给你画成“接口层次图 + 常见实现类继承图”两部分,用文本树形结构表示,方便直接粘贴到笔记里。


1. Java 容器接口层次图(类比 C++ STL 里的概念)

          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 的感觉: