树型结构展示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 插件)来绘制这些关系。