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. Digit Counting UVA - 1225

    ​ Trung is bored with his mathematics homeworks. He takes a piece of chalk and starts writing a sequ ...

  2. 10行C++代码实现高性能HTTP服务

    前言 是不是觉得C++写个服务太累,但又沉迷于C++的真香性能而无法自拔?作为一个老牌C++程序员(可以看我 github 上十几年前的C++项目:https://github.com/kevwan ...

  3. 【ElasticSearch】shards,replica,index之间的关系

    1.index 包含多个shard ,在创建index的时候可以自定义shards和replica的数量 例如: 新增一个index,手动指定shard和replica的数量 PUT demo_ind ...

  4. 日志配置文件读取spring boot配置文件中的属性

    如果是读取 application.properties 这种spring boot的默认配置文件时 其中 scope固定为context  指明从上下文中获取, name 根据自己的意思给, sou ...

  5. 【MRR】转-MySQL 的 MRR 优化

    MRR,全称「Multi-Range Read Optimization」. 简单说:MRR 通过把「随机磁盘读」,转化为「顺序磁盘读」,从而提高了索引查询的性能. 至于: 为什么要把随机读转化为顺序 ...

  6. 【Feign/Ribbon】记录一次生产上的SpringCloudFeign的重试问题

    在上周在的微供有数项目中(数据产品),需要对接企业微信中第三方应用,在使用Feign的去调用微服务的用户模块用微信的code获取access_token以及用户工厂信息时出现Feign重试超时报错的情 ...

  7. LA3708墓地雕塑

    题意:       有N个墓碑,等距离的分布在一个圆形墓地的周围,然后又要添加m个墓碑,最后要求所有的墓碑还是等距离,添加的墓碑可以放在任意位置,问之前的N个墓碑的最少移动距离之和是多少? 思路:   ...

  8. DVWA之CSRF(跨站请求伪造攻击)

    目录 Low Middle High Impossible Low 源代码: <?php if( isset( $_GET[ 'Change' ] ) ) { // Get input $pas ...

  9. Spring随堂笔记

    Spring 1.IoC控制反转 IoC特点不用new 就可以初始化类: 控制反转的英文名叫 Ioc(Inversion of Control) ,依赖注入英文名叫DI(Dependency Inje ...

  10. 【原创】简单解释一下,什么叫TLAB

    [Deerhang] TLAB是全程Thread Local Allocation Buffer,中文大致的含义是:线程私有内存分配区.它存在的意义是提高线程在JVM堆上创建对象的效率.那么它是如何做 ...