第一次写博客,还是有点小激动的,哇擦擦 ,总结一下数据结构
常用的几个
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循环就好了
此外还有字典对应的哈希表什么的巴啦啦 实在是没用过就不说了
如有写的不对的地方, 欢迎大佬们指出, 在此拜谢~