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

相关推荐
Honeysea_709 分钟前
常用的Python库
开发语言·python·机器学习·计算机视觉·ai·自然语言处理
2401_8848107412 分钟前
maven笔记
java·笔记·maven
霸王龙的小胳膊13 分钟前
SpringMVC-登录校验
java·mvc
编程梦想记13 分钟前
Python在数据处理中的应用:从入门到精通
开发语言·python·信息可视化
字节源流14 分钟前
【SpringMVC】常用注解:@PathVariable
java·开发语言·servlet
小安同学iter19 分钟前
SpringMVC(五)拦截器
java·开发语言·spring boot·spring·java-ee
每次的天空27 分钟前
kotlin中的模块化结构组件
android·开发语言·kotlin
大模型铲屎官27 分钟前
Python桌面应用开发入门:Tkinter+PyQt5实战文件管理器教程
开发语言·人工智能·python·tkinter·pyqt5·桌面应用开发·文件管理器
栀栀栀栀栀栀32 分钟前
JVM 2015/3/15
java·开发语言·jvm
羊思茗52039 分钟前
Spring Boot中@Valid 与 @Validated 注解的详解
java·spring boot·后端