怎么利用 Java 集合框架图描述 Collection 与 Map 接口的核心继承体系

陌宇大大_8912

陌宇大大_8912

2026-05-01

658人浏览

原创

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

怎么利用 java 集合框架图描述 collection 与 map 接口的核心继承体系

Java 集合框架没有唯一的“顶级接口”,而是由两个并列的根级接口构成:Collection 和 Map。它们互不继承,语义不同,各自形成独立体系。画图时若强行把 Map 当作 Collection 的子类,就会歪曲设计本意。

Collection 体系:单元素集合的统一抽象

Collection 继承自 Iterable(提供 foreach 支持),是所有单值集合的顶层接口。它不直接被实现,而是通过三个核心子接口展开:

deep-java-review
deep-java-review

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 抽象的是“一组同类型元素”,泛型为

  • add(E) vs put(K,V):一个是单参数追加,一个是双参数关联
  • contains(Object) 检查元素存在性 vs containsKey(Object) / containsValue(Object):语义粒度不同
  • 试图定义 Collection 会导致 add() 行为模糊——加的是 key?value?还是 pair?JDK 明确拒绝这种混淆

Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3068

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4449

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3709

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

406

15

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

2025.09.05

470

5

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

2025.11.16

323

7

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

2025.11.17

493

20

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

2025.11.27

263

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习