分别用树型和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 插件)来绘制这些关系。

相关推荐
至此流年莫相忘1 分钟前
设计模式:模板方法模式
java·开发语言·设计模式
人机1014 分钟前
Spring Security - FilterChainProxy
java
SimonKing34 分钟前
Apache Commons Math3 使用指南:强大的Java数学库
java·后端·程序员
渣哥35 分钟前
Java 集合迭代中的 fail-fast 与 fail-safe 机制详解
java
土了个豆子的37 分钟前
02.继承MonoBehaviour的单例模式基类
开发语言·visualstudio·单例模式·c#·里氏替换原则
帧栈38 分钟前
我的创作纪念日
java
qq_1728055943 分钟前
Go 自建库的使用教程与测试
开发语言·后端·golang
久绊A1 小时前
Hydra-SSH 破解安全防范
开发语言·php
阿昭L1 小时前
c++中获取随机数
开发语言·c++
3壹1 小时前
数据结构精讲:栈与队列实战指南
c语言·开发语言·数据结构·c++·算法