C#泛型数据结构和特点

数据结构
Array 数组
缺点
  1在数组的两个数据间插入数据是很麻烦的,
2声明数组的时候必须指定数组的长度,
3数组的长度过长,会造成内存浪费,过段会造成数据溢出的错误。
ArrayList 数组 是个接口
1装箱拆箱 效率低
2数据类型不安全 

List 数组
缺点
1个List<T> 本质上是将其可能是吧整个list拆分成多个数据保存在一个堆栈的数组上,
  因为这个是一个数组,所以其对插入和删除这类的操作效率并不高  
优点
1List<T> 性能优于LinkedList<T>的地方是你在使用索引进行访问的时候
2在List<T> 中增加、删除节点的速度,大体上快于使用LinkedList<T> 时的相同操作

LinkedList 双向链表
  缺点
  1LinkedList<T> 中,你必须通过Previous或Next属性遍历整个List 查找慢 
  优点
  1而LinkedList<T> 是将其所有节点保存在堆栈上

SortedList<TKey, TValue> 链表
优点
  当你要维护一个集合按一定规则排序时(初始如果是排序的),并且只会频繁的查询,而很少插入和 删除的话,推荐使用此集合。


HashSet Hash表
特点
  提供了高性能的集运算。一组是一个集合,不包含任何重复的元素,且的元素顺序不分先后。   
  1提数学操作设置 等方法 确定 set 是否相等、 重叠的集 组添加 (联合),并设置减法

HashTable Hash表
特点
  HashTable中的被占用空间达到一个百分比的时候就将该空间自动扩容 .net中这个百分比是72% 扩容大小是当前空间大小的两倍最接近的素数
  表示根据键的哈希代码进行组织的键/值对的集合
缺点
  1 拆箱 装箱
优点 
  1可以通过Hashtable tab = Hashtable.Synchronized(new Hashtable()); 获得线程安全的对象。

Dictionary Hash表
特点
  当你维护的一个集合不要求排序,而主要用来插入、删除和查询的话,推荐使用此集合。
  单线程的时候使用Dictionary更好一些

Queue<T> 队列
特点
  默认情况下,Queue<T> 的初始容量为32, 增长因子为2.0。,容量增长2倍。

Stack<T>
特点
  默认容量为10。 

SortedDictionary 红黑树 

SortedList 内部由一个排序后的数组对实现
  可以通过索引或键获取元素
优点
  是可对未排序的数据执行更快的插入和删除操作(O(log n))
缺点
  是使用的内存比SortedList<TKey, TValue> 多,并且如果使用排序数据一次性填充列表,则 SortedList<TKey, TValue> 比 SortedDictionary<TKey, TValue> 快。

SortedSet 线性表 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值