C# 数据结构 - Dictionary

本文介绍了C#中的Dictionary数据结构,其底层实现为数组加单项链表,详细阐述了初始化过程,包括默认容量设定。此外,文章还讨论了添加、删除数据的操作以及version属性在并发遍历时的作用,强调了并发安全问题。
摘要由CSDN通过智能技术生成

C# 数据结构 - Dictionary

1. Dictionary底层实现是使用 数组+单项链表,具体数据结构为

 private int[] buckets;//hashcode 桶,始终指向当前桶的最后一个元素(Entry next 为-1)
 private Entry[] entries;//所有存入的数据

其中Entry结构如下:

 private struct Entry {
     public int hashCode;    // hashcode
     public int next;        // 下一个元素在enties中的索引
     public TKey key;           // Key
     public TValue value;         // Value
 }

entries保存了所有添加进入的key:value元素

2. Dictionary的初始化过程

public Dictionary(int capacity, IEqualityComparer<TKey> comparer) {
    if (capacity < 0) ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.capacity);
    if (capacity > 0) Initialize(capacity);
    this.comparer = comparer ?? EqualityComparer<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值