使用 C# 好多年了,一直疏于深究,写了许多不好的逻辑而不自知,特开此文以做记录
字典
字典采用了哈希桶和链表来实现存储逻辑,存在哈希冲突时,链表查找的时间复杂度仍是 O(n)
初始化
- 误:不指定 capacity,实例化后装填字典
- 正:指定 capacity,避免 Resize 操作
- 警:Resize 对空间和时间的消耗巨大
遍历键值
- 误:遍历 Keys 属性,再使用索引查找值
- 正:直接遍历字典,获取 KeyValuePair<,>
- 警:字典查找存在明显的性能损失
使用 C# 好多年了,一直疏于深究,写了许多不好的逻辑而不自知,特开此文以做记录
字典采用了哈希桶和链表来实现存储逻辑,存在哈希冲突时,链表查找的时间复杂度仍是 O(n)