java集合框架有两个并列顶级接口:collection(单元素集合,继承iterable)和map(键值对映射,独立于collection),二者语义、泛型、方法签名均不同,不可合并。

Java 集合框架没有唯一的“顶级接口”,而是由两个并列的根级接口构成:Collection 和 Map。它们互不继承,语义不同,各自形成独立体系。画图时若强行把 Map 当作 Collection 的子类,就会歪曲设计本意。
Collection 体系:单元素集合的统一抽象
Collection 继承自 Iterable(提供 foreach 支持),是所有单值集合的顶层接口。它不直接被实现,而是通过三个核心子接口展开:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- List:有序、可重复。典型实现有 ArrayList(数组)、LinkedList(链表)、Vector(线程安全旧版)
- Set:无序、不可重复。典型实现有 HashSet(哈希表)、TreeSet(红黑树排序)、LinkedHashSet(插入顺序)
- Queue / Deque:支持队列行为(FIFO 或双端操作)。常见实现如 PriorityQueue(堆)、ArrayDeque(高效双端队列)、LinkedList(复用实现)
Map 体系:键值对映射的独立结构
Map 是完全独立的顶层接口,不继承 Collection,也不实现 Iterable。它管理的是 key 与 value 的映射关系,核心方法如 put()、get()、remove() 都以键为中心:
- Map 的实现类直接实现该接口,如 HashMap(哈希+红黑树)、TreeMap(红黑树,自然或定制排序)、LinkedHashMap(插入/访问顺序)
- Map 提供三个“视图集合”:keySet() 返回 Set
,values() 返回 Collection ,entrySet() 返回 Set > —— 这是唯一能同时拿到键和值的标准方式 - 注意:虽然 HashSet 内部用 HashMap 实现、TreeSet 用 TreeMap 实现,但这属于实现细节,不影响接口层级的并列关系
图示关键点:别漏掉 Iterable 和语义分界
一张准确的集合框架图应体现以下结构层次:
- 顶部标出 Iterable 接口(单方法 iterator()),它是 Collection 的父接口,但 Map 不在此链上
- 左侧画 Collection 分支,向下分出 List / Set / Queue,并标注各典型实现类
- 右侧单独画 Map 分支,与 Collection 平起平坐,下方列出 HashMap / TreeMap / LinkedHashMap 等实现
- 用虚线或注释标明:Map 的 values() 返回 Collection,entrySet() 返回 Set,但这些只是“视图”,不是继承关系
为什么不能合并成一个接口?
Collection 抽象的是“一组同类型元素”,泛型为
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南









