分别用树型和UML结构展示java集合框架常见接口和类

树型结构展示java集合框架常见接口和类

Java 集合框架中的接口和子类关系可以用树形结构来展示。以下是一个简化的树形结构,展示了主要的接口和一些重要的实现类:

复制代码
java.util.Collection
├── java.util.List
│   ├── java.util.ArrayList
│   ├── java.util.LinkedList
│   ├── java.util.Vector
│   └── java.util.Stack
├── java.util.Set
│   ├── java.util.HashSet
│   ├── java.util.LinkedHashSet
│   └── java.util.TreeSet
└── java.util.Queue
    ├── java.util.PriorityQueue
    └── java.util.Deque
        ├── java.util.ArrayDeque
        └── java.util.LinkedList (also implements List)

java.util.Map
├── java.util.HashMap
├── java.util.LinkedHashMap
├── java.util.TreeMap
└── java.util.Hashtable
    └── java.util.Properties

主要接口说明:

  • Collection: 是所有集合类的根接口。
  • List: 有序集合(也称为序列),允许重复元素。
  • Set: 无序集合,不允许重复元素。
  • Queue: 通常用于 FIFO(先进先出)访问元素的集合。
  • Deque: 双端队列,支持在两端插入和删除元素。
  • Map: 键值对(也称为关联数组或字典)的集合,不允许重复键。

主要实现类说明:

  • ArrayList: 基于数组实现的列表。
  • LinkedList: 基于双向链表实现的列表。
  • HashSet: 基于哈希表实现的集合。
  • TreeSet: 基于红黑树实现的有序集合。
  • HashMap: 基于哈希表实现的映射。
  • TreeMap: 基于红黑树实现的有序映射。
  • PriorityQueue: 基于堆实现的优先队列。
  • ArrayDeque: 基于数组实现的双端队列。

这个树形结构展示了 Java 集合框架的主要接口和实现类之间的关系,帮助你更好地理解它们的层次结构和功能。

UML结构展示java集合框架常见接口和类

为了更直观地展示 Java 集合框架中的接口和子类的结构关系,我们可以使用 UML 类图。以下是 Java 集合框架中主要接口和一些重要实现类的 UML 类图描述。由于 UML 图无法直接在文本中绘制,我将通过文本描述来展示这个结构。

UML 类图描述

Collection 接口及其子接口和实现类
复制代码
+-------------------+
|    Collection     |
+-------------------+
| - size()          |
| - isEmpty()       |
| - contains(o)     |
| - iterator()      |
| - toArray()       |
| - add(o)          |
| - remove(o)       |
| - containsAll(c)  |
| - addAll(c)       |
| - removeAll(c)    |
| - retainAll(c)    |
| - clear()         |
+-------------------+
          ^
          |
+-------------------+
|       List        |
+-------------------+
| - get(index)      |
| - set(index, o)   |
| - add(index, o)   |
| - remove(index)   |
| - indexOf(o)      |
| - lastIndexOf(o)  |
| - listIterator()  |
+-------------------+
          ^
          |
+-------------------+       +-------------------+       +-------------------+       +-------------------+
|     ArrayList     |       |    LinkedList     |       |      Vector       |       |       Stack       |
+-------------------+       +-------------------+       +-------------------+       +-------------------+
| - trimToSize()    |       | - addFirst(o)     |       | - capacity()      |       | - push(o)         |
| - ensureCapacity()|       | - addLast(o)      |       | - ensureCapacity()|       | - pop()           |
| - removeRange()   |       | - removeFirst()   |       | - setSize()       |       | - peek()          |
| - elementData[]   |       | - removeLast()    |       | - elementData[]   |       | - empty()         |
+-------------------+       +-------------------+       +-------------------+       +-------------------+

+-------------------+
|       Set         |
+-------------------+
| - addAll(c)       |
| - removeAll(c)    |
| - retainAll(c)    |
+-------------------+
          ^
          |
+-------------------+       +-------------------+       +-------------------+
|     HashSet       |       |  LinkedHashSet    |       |     TreeSet       |
+-------------------+       +-------------------+       +-------------------+
| - map             |       | - map             |       | - tree            |
| - add(e)          |       | - add(e)          |       | - add(e)          |
| - remove(o)       |       | - remove(o)       |       | - remove(o)       |
+-------------------+       +-------------------+       +-------------------+

+-------------------+
|       Queue       |
+-------------------+
| - offer(e)        |
| - poll()          |
| - peek()          |
+-------------------+
          ^
          |
+-------------------+       +-------------------+
|   PriorityQueue   |       |      Deque        |
+-------------------+       +-------------------+
| - queue           |       | - addFirst(e)     |
| - comparator()    |       | - addLast(e)      |
| - offer(e)        |       | - removeFirst()   |
| - poll()          |       | - removeLast()    |
| - peek()          |       | - getFirst()      |
+-------------------+       | - getLast()       |
                              | - add(e)          |
                              | - remove(o)       |
                              +-------------------+
                                    ^
                                    |
                           +-------------------+       +-------------------+
                           |    ArrayDeque     |       |    LinkedList     |
                           +-------------------+       +-------------------+
                           | - elements[]      |       | - first           |
                           | - addFirst(e)     |       | - last            |
                           | - addLast(e)      |       | - addFirst(e)     |
                           | - removeFirst()   |       | - addLast(e)      |
                           | - removeLast()    |       | - removeFirst()   |
                           | - getFirst()      |       | - removeLast()    |
                           | - getLast()       |       | - getFirst()      |
                           | - add(e)          |       | - getLast()       |
                           | - remove(o)       |       | - add(e)          |
                           | - remove(o)       |       | - remove(o)       |
                           +-------------------+       +-------------------+
Map 接口及其子接口和实现类
复制代码
+-------------------+
|       Map         |
+-------------------+
| - size()          |
| - isEmpty()       |
| - containsKey(key)|
| - containsValue(value)|
| - get(key)        |
| - put(key, value) |
| - remove(key)     |
| - putAll(m)       |
| - clear()         |
| - keySet()        |
| - values()        |
| - entrySet()      |
+-------------------+
          ^
          |
+-------------------+       +-------------------+       +-------------------+       +-------------------+
|     HashMap       |       |  LinkedHashMap    |       |     TreeMap       |       |     Hashtable     |
+-------------------+       +-------------------+       +-------------------+       +-------------------+
| - table           |       | - table           |       | - tree            |       | - table           |
| - put(k, v)       |       | - put(k, v)       |       | - put(k, v)       |       | - put(k, v)       |
| - remove(k)       |       | - remove(k)       |       | - remove(k)       |       | - remove(k)       |
+-------------------+       +-------------------+       +-------------------+       +-------------------+
                                                                                      ^
                                                                                      |
                                                                                      +-------------------+
                                                                                      |     Properties      |
                                                                                      +-------------------+
                                                                                      | - defaults          |
                                                                                      | - getProperty(key)  |
                                                                                      | - setProperty(key, value)|
                                                                                      +-------------------+

说明

  • Collection: 所有集合类的根接口。
  • List: 有序集合,允许重复元素。
  • Set: 无序集合,不允许重复元素。
  • Queue: 通常用于 FIFO 访问元素的集合。
  • Deque: 双端队列,支持在两端插入和删除元素。
  • Map: 键值对的集合,不允许重复键。

主要实现类说明

  • ArrayList: 基于数组实现的列表。
  • LinkedList: 基于双向链表实现的列表。
  • HashSet: 基于哈希表实现的集合。
  • TreeSet: 基于红黑树实现的有序集合。
  • HashMap: 基于哈希表实现的映射。
  • TreeMap: 基于红黑树实现的有序映射。
  • PriorityQueue: 基于堆实现的优先队列。
  • ArrayDeque: 基于数组实现的双端队列。
  • Hashtable: 基于哈希表实现的映射,线程安全。
  • Properties: 继承自 Hashtable,用于处理属性文件。

这个 UML 类图描述了 Java 集合框架的主要接口和实现类之间的关系,帮助你更好地理解它们的层次结构和功能。你可以使用 UML 工具(如 Lucidchart、Draw.io 或 IntelliJ IDEA 的 UML 插件)来绘制这些关系。

相关推荐
yaoxin5211239 分钟前
124. Java 泛型 - 有界类型参数
java·开发语言
Spirit_NKlaus12 分钟前
解决HttpServletRequest无法获取@RequestBody修饰的参数
java·spring boot·spring
不死的精灵18 分钟前
【Java21】在spring boot中使用ScopedValue
java·spring boot·后端
liulilittle29 分钟前
深度剖析:OPENPPP2 libtcpip 实现原理与架构设计
开发语言·网络·c++·tcp/ip·智能路由器·tcp·通信
88号技师36 分钟前
2025年6月一区-田忌赛马优化算法Tianji’s horse racing optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
勤奋的知更鸟42 分钟前
Java 编程之模板方法模式
java·开发语言·模板方法模式
逸风尊者1 小时前
开发易掌握的知识:GeoHash查找附近空闲车辆
java·后端
碎叶城李白1 小时前
若依学习笔记1-validated
java·笔记·学习·validated
上单带刀不带妹2 小时前
手写 Vue 中虚拟 DOM 到真实 DOM 的完整过程
开发语言·前端·javascript·vue.js·前端框架
都叫我大帅哥2 小时前
🌊 Redis Stream深度探险:从秒杀系统到面试通关
java·redis