std.collection 包
功能介绍
collection 包提供了常见数据结构的高效实现、相关抽象的接口的定义以及在集合类型中常用的函数功能。
本包实现了以下常用的数据结构:
-
ArrayList:变长的连续数组,在需要存储不确定数量的数据,或者需要根据运行时的条件动态调整数组大小时使用 ArrayList,使用 ArrayList 可能会导致内存分配和释放的开销增加,因此需要谨慎使用。
-
LinkedList:链表结构, LinkedList 的优点是它可以动态地添加或删除元素,而不需要移动其他元素。这使得它在需要频繁添加或删除元素的情况下非常有用。它还可以轻松地进行修改或删除操作,并且可以在列表中存储多个元素。 LinkedList 的缺点是它需要额外的内存来存储每个元素的引用,这可能会导致内存浪费。
-
HashMap:哈希表,它存储键值对,并且可以根据键快速访问值。在需要使用映射关系并且需要快速查找时使用。
-
HashSet:基于哈希表实现的集合数据结构,它可以用于快速检索和删除元素,具有高效的插入、删除和查找操作。
-
TreeMap:基于红黑树实现的有序映射表。通常情况下,当需要将元素按照自然顺序或者自定义顺序进行排序时,可以使用TreeMap。
collection 包提供的集合类型都不支持并发安全,并发安全的集合请见 collection.concurrent 包。
API 列表
函数
接口
接口名 | 功能 |
---|---|
Map<K, V> where K <: Equatable<K> | 提供了一种将键映射到值的方式。 |
Set<T> where T <: Equatable<T> | 不包含重复元素的集合。 |
EquatableCollection<T> where T <: Equatable<T> | 定义了可以进行比较的集合类型。 |
类
类名 | 功能 |
---|---|
ArrayList<T> | 提供可变长度的数组的功能。 |
ArrayListIterator<T> | 此类主要实现 ArrayList<T> 的迭代器功能。 |
HashMapIterator<K, V> where K <: Hashable & Equatable<K> | 此类主要实现 HashMap 的迭代器功能。 |
HashMap<K, V> where K <: Hashable & Equatable<K> | Map<K, V> where K <: Equatable<K> 接口的哈希表实现。 |
HashSet<T> where T <: Hashable & Equatable<T> | 基于 HashMap<K, V> where K <: Hashable & Equatable<K> 实现的 Set<T> where T <: Equatable<T> 接口的实例。 |
LinkedListNode<T> | LinkedList<T> 上的节点。 |
LinkedList<T> | 实现双向链表的数据结构。 |
TreeMap<K, V> where K <: Comparable<K> | 基于平衡二叉搜索树实现的 Map<K, V> where K <: Equatable<K> 接口实例。 |
结构体
异常类
异常类名 | 功能 |
---|---|
ConcurrentModificationException | 并发修改异常类。 |