性能
- 集合的方法,常有性能提示,以O表示操作时间
- O(1): 无论集合中有多少数据,这个操作需要的时间都不变
- O(log n): 执行这个操作,需要的时间在最坏情况时是N
- O(n): 操作需要的时间,随集合中元素的增加而增加,但每个元素增加的时间不是线性的,而是呈对数曲线。
集合类的性能
| 集合 | 添加 | 插入 | 删除 | Item | 排序 | 查找 |
|---|---|---|---|---|---|---|
List<T> | 若需重置大小,O(1)或O(n) | O(n) | O(n) | O(1) | O(n log n),最坏O(n^2) | O(n) |
Stack<T> | 若需重置大小,O(1)或O(n) | n/a | O(1) | n/a | n/a | n/a |
Queue<T> | 若需重置大小,O(1)或O(n) | n/a | O(1) | n/a | n/a | n/a |
HashSet<T> | 若需重置大小,O(1)或O(n) | O(1)或O(n) | O(1) | n/a | n/a | n/a |
SortedSet<T> | 若需重置大小,O(1)或O(n) | O(1)或O(n) | n/a | n/a | n/a | n/a |
LinkedList<T> | O(1) | O(1) | O(1) | n/a | n/a | O(n) |
Dictionary<TKey, TValue> | O(1)或O(n) | n/a | O(1) | O(1) | n/a | n/a |
SortedDictionary<TKey, TValue> | O(log n),因为树形结构 | n/a | O(log n) | O(log n) | n/a | n/an/a |
SortedList<TKey, TValue> | 无序数据O(n);若需重置大小,O(n);到列表尾部O(log n) | n/a | O(n) | 键在列表中O(log n),键不在列表中O(n) | n/a | n/a |