Array

  • 连续性的内存空间
  • 快速定位查找元素,随机访问性强,查找效率高
  • 已知的统一的元素类型,减小运行时开销
  • 固定长度,不能再新增元素

ArrayList

  • 连续性的内存空间
  • 快速定位查找元素,随机访问性强,查找效率高
  • 可变长度,便于对元素进行增删操作
  • 未知的元素类型,Runtime需要类型检测,Runtime需装箱拆箱动作,为此产生性能开销
  • 可对元素进行增删改操作,需要重新调整后续元素的位置,为此产生性能开销

List<T>

  • 连续性的内存空间
  • 快速定位查找元素,随机访问性强,查找效率高
  • 可变长度,便于对元素进行增删操作
  • 泛型,统一的已知类型,避免运行时类型检测,避免运行时装箱拆箱,减少运行时性能开销
  • 可对元素进行增删改操作,需要重新调整后续元素的位置,为此产生性能开销

LinkedList<T>

  • 可变长度,便于对节点(元素)进行增删操作
  • 增删性能快,不影响其它节点(元素)位置调整
  • 泛型,统一的已知类型,避免运行时类型检测,避免运行时装箱拆箱,减少运行时性能开销
  • 无序的、分散存储,相互分离,靠节点(元素)中的指针指向关联下一节点(元素)
  • 查找效率低,不能随机查找,不支持循环,仅可从首(末)节点(元素) 透过指针指向逐次查找下个节点(元素)

Stack

  • 栈:先进后出,小型的、连续性的、存储变量及参数的内存空间,读取速度快
  • 堆:无序的,存储数据对象的内存区域,读取速度相对慢,可手动释放的区域

Queue

  • 线性的,有序的,先进先出
  • 队尾插入,队头删除
  • 顺序队列,预期长度;链式队列,可变长度

Dictionary<T>

  • 哈希存储结构,键值对访问,通过索引快速查找
  • 不重复的键值,唯一性
  • 可遍历的数据集
  • 泛型,避免运行时类型检测,避免运行时装箱拆箱
  • 散列存储,不固定长度,添加删除时,无需元素位置的调整

C#中的数据结构的更多相关文章

  1. java中的数据结构(集合|容器)

    对java中的数据结构做一个小小的个人总结,虽然还没有到研究透彻jdk源码的地步.首先.java中为何需要集合的出现?什么需求导致.我想对于面向对象来说,对象适用于描述任何事物,所以为了方便对于对象的 ...

  2. Python 中的数据结构总结(一)

    Python 中的数据结构 “数据结构”这个词大家肯定都不陌生,高级程序语言有两个核心,一个是算法,另一个就是数据结构.不管是c语言系列中的数组.链表.树和图,还是java中的各种map,随便抽出一个 ...

  3. [转]详细介绍java中的数据结构

    详细介绍java中的数据结构 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类.一起来看本文吧! 也许你已经熟练使用了java.util包里面的各 ...

  4. 详细介绍java中的数据结构

    详细介绍java中的数据结构 http://developer.51cto.com/art/201107/273003.htm 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个 ...

  5. sql点滴42—mysql中的数据结构

    原文:sql点滴42-mysql中的数据结构 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小 ...

  6. PHP中的数据结构

    PHP7以上才能安装和使用数据结构,安装比较简单: 1. 运行命令 pecl install ds 2. 在php.ini中添加 extension=ds.so 3. 重启PHP或重载配置  Coll ...

  7. Python中的数据结构

    Python中的数据结构 这里总结一下Python中的内置数据结构(Built-in Data Structure):列表list.元组tuple.字典dict.集合set,涵盖的仅有部分重点,详细地 ...

  8. 在Object-C中学习数据结构与算法之排序算法

    笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳. 目录 选择排序 冒泡排序 插入排序 快速 ...

  9. PHP中的数据结构:DS扩展

    PHP7以上才能安装和使用该数据结构扩展,安装比较简单: 1. 运行命令 pecl install ds 2. 在php.ini中添加 extension=ds.so 3. 重启PHP或重载配置 在这 ...

  10. JavaScript中的数据结构及实战系列

    本系列主要是讲解JavaScript中的数据结构及在实际项目中遇到的地方 JavaScript中的数据结构及实战系列(1):队列 JavaScript中的数据结构及实战系列(2):栈

随机推荐

  1. Box UVA - 1587

    Ivan works at a factory that produces heavy machinery. He has a simple job - he knocks up wooden box ...

  2. Unknown custom element: <componentName> - did you register the component correct?

    最近开发的时候遇见一个头疼的事情,之前用过的组件没有出现过任何问题,但偏偏在其他目录下引用就出问题了. 组件的名称.import的路径都没任何问题,看了其他人遇到的问题和官方文档关于组件name属性的 ...

  3. DPAPI机制学习

    0x00 前言 ​绝大多数应用程序都有数据加密保护的需求,存储和保护私密信息最安全的方式就是每次需要加密或解密时都从用户那里得到密码,使用后再丢弃.这种方式每次处理信息时都需要用户输入口令,对于绝大多 ...

  4. Python Basics with numpy (optional)

    Python Basics with Numpy (optional assignment) Welcome to your first assignment. This exercise gives ...

  5. 【C++】从零开始,只使用FFmpeg,Win32 API,实现一个播放器(一)

    前言 起初只是想做一个直接读取视频文件然后播放字符动画的程序.我的设想很简单,只要有现成的库,帮我把视频文件解析成一帧一帧的原始画面信息,那么我只需要读取里面的每一个像素的RGB数值,计算出亮度,然后 ...

  6. 共享内存多进程key value操作

    这个方法的优势是多进程,劣势也很明显,只允许操作key为uint32 value为uint32的数据.   https://www.cnblogs.com/dearplain/p/11578588.h ...

  7. Windows核心编程 第2 5章 未处理异常和C ++异常(上)

    未处理异常和C + +异常(上) 前一章讨论了当一个异常过滤器返回 E X C E P T I O N _ C O N T I N U E _ S E A R C H时会发生什么事情.返回EXCEPT ...

  8. Win64 驱动内核编程-25.X64枚举和隐藏内核模块

    X64枚举和隐藏内核模块 在 WIN64 上枚举内核模块的人方法:使用 ZwQuerySystemInformation 的第 11 号功能和枚举 KLDR_DATA_TABLE_ENTRY 中的 I ...

  9. Intel汇编语言程序设计学习-第一章 基本概念

    第一章基本概念 1.1  简单介绍 本书着重讲述MS-Windows平台上IA-32(Intel Architecture 32bit,英特尔32位体系架构)兼容微处理器的汇编语言程序设计,可以使用I ...

  10. 大事件,Java被超越了,2021年5月TIOBE编程语言排行榜出炉

    TIOBE 头条 TIOBE 5月编程语言排行榜新鲜出炉.前十榜单中,C.Python.Java三大鳌头仍占据前三榜单.去年11月,Python短时间的挤掉Java跃居至榜单第二名:今年5月,Pyth ...