C# 数据结构几种集合的区别

2020年3月4日13:28:12补充:

关于值类型和引用类型  我比较喜欢下边这一段解释:

Swift语言中值类型和引用类型的基本概念
  值类型和引用类型具有非常明显的区别,这主要体现在它们的实例在作为参数进行传递,或者赋值给另外一个实例的过程上。当我们传递一个值类型的实例时,实际上我们传递的是原始实例的拷贝,这意味着两个实例中不管哪一个发生了变化,最终的结果都不会反应到另一个身上。因为它们之间是相互独立的。当我们传递一个引用类型的实例时,实际上我们只是向原始实例传递了一个新的引用,这意味着两个不同的引用最终都指向了同一个实例,不管它们之间哪一个发生了变化,最终的结果都会反映到另一个引用身上。

 

以下时间:2018-08-14 23:09:28

第一次写博客,还是有点小激动的,哇擦擦 ,总结一下数据结构

常用的几个

Array, List<T> ,Dictionary<key,item>,

不常用的几个

LinkedList<T>,Queue, Stack, ArrayList<object>

然后是他们各自的优缺点

Array   一般用   声明的时候就要标明长度,元素类型必须相同

优点:且用下标索引,  速度快,更换元素方便,

缺点:长度固定,无法随意更改

ArrayList   不常用

优点:解决了Array 的长度固定 数据类型必须相同的问题,可以动态改长度,

缺点: 将所有元素都当成object处理,装入值类型就要装箱操作 取出的时候 拆箱操作,消耗比较大,类型不统一 不安全

List<T> 最常用的 声明的时候要注明数据类型保证了数据安全,可下标取值索引

优点:既保证了数据安全,又避免了装箱拆箱操作性能好

缺点:暂时没想到啥缺点

Dictionary<key,item>  最常用     键值对操作 key不可重复 item可以

优点:键值对操作 ,增删改查特别方便,

缺点:实际占用空间比用的要多,如果数据长度不长 ,尽量避免使用  当然长的话还是可以用的

LinkedList<T> 链表,不常用 特点 数据间的联系通过上一个下一个

优点 :数据的不连续性可以很好的增删元素 

缺点: 无法通过下标取值

Queue<T> 先进先出 不常用

最先进入的数据在数据满的时候会先删掉 初始容量为32巴拉巴拉

Stack<T> 后进先出 不常用

当数据满的时候 后边进去的就会被删掉 默认容量为10巴拉巴拉

详细信息可参阅:慕容小匹夫的博客 常用的数据接口分析和总结

本文大部分也是参考这位大佬的博客

对数组结构进行改变的时候,foreach是不好使的会报错说数据结构被改变无法继续循环  应该使用for循环就好了

此外还有字典对应的哈希表什么的巴啦啦 实在是没用过就不说了

如有写的不对的地方, 欢迎大佬们指出, 在此拜谢~

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值