C#常见的集合

3中数组式的

Array

在内存上是连续分配的,而且元素类型是一样的

特点:读取快,可以坐标访问,增删慢。长度不变。

ArrayList

不定长,连续分配的,元素没有类型限制,任何元素都当成Object处理,如果是值类型,会有装箱操作

特点:读取快,增删慢

List

核心也是Array,内存上连续摆放的。泛型,保证类型安全,避免装箱拆箱

特点:读取快,增删慢

 链表类型

LinkList

泛型特点,元素不连续分配,每个元素都有记录前后节点

Queue

链表,先进先出。使用场景(放任务,延时执行):A不断写入任务,B不断获取任务去执行

Enqueue进入队列,Dequeue取出数据并移除,Peek取出数据不移除。

Stack

就是链表,先进后出。Push存入数据,Pop取出数据并移除,Peek取出数据不移除。

HashSet

集合,hash分布

Hashtable

1>key-value形式的,体积不定,可以动态增加。拿key计算一个地址,然后让如key-value,都是object的。

2>object类型,存在装箱拆箱,

3>查找到的时候,如果地址对应数据的key不对,那就+1查找

4>浪费了空间,基于数组实现的

5>查找数据,一次定位,增删一次定位,增删查都很快

缺点:浪费空间,数据太多,重复定位,效率就下去了

Directory

key-value形式的,泛型的,增删改查都很快,有序的。

 

posted @ 2022-07-25 21:09  东方承丘  阅读(94)  评论(0编辑  收藏  举报