C#中的数据结构
Array
- 连续性的内存空间
- 快速定位查找元素,随机访问性强,查找效率高
- 已知的统一的元素类型,减小运行时开销
- 固定长度,不能再新增元素
ArrayList
- 连续性的内存空间
- 快速定位查找元素,随机访问性强,查找效率高
- 可变长度,便于对元素进行增删操作
- 未知的元素类型,Runtime需要类型检测,Runtime需装箱拆箱动作,为此产生性能开销
- 可对元素进行增删改操作,需要重新调整后续元素的位置,为此产生性能开销
List<T>
- 连续性的内存空间
- 快速定位查找元素,随机访问性强,查找效率高
- 可变长度,便于对元素进行增删操作
- 泛型,统一的已知类型,避免运行时类型检测,避免运行时装箱拆箱,减少运行时性能开销
- 可对元素进行增删改操作,需要重新调整后续元素的位置,为此产生性能开销
LinkedList<T>
- 可变长度,便于对节点(元素)进行增删操作
- 增删性能快,不影响其它节点(元素)位置调整
- 泛型,统一的已知类型,避免运行时类型检测,避免运行时装箱拆箱,减少运行时性能开销
- 无序的、分散存储,相互分离,靠节点(元素)中的指针指向关联下一节点(元素)
- 查找效率低,不能随机查找,不支持循环,仅可从首(末)节点(元素) 透过指针指向逐次查找下个节点(元素)
Stack
- 栈:先进后出,小型的、连续性的、存储变量及参数的内存空间,读取速度快
- 堆:无序的,存储数据对象的内存区域,读取速度相对慢,可手动释放的区域
Queue
- 线性的,有序的,先进先出
- 队尾插入,队头删除
- 顺序队列,预期长度;链式队列,可变长度
Dictionary<T>
- 哈希存储结构,键值对访问,通过索引快速查找
- 不重复的键值,唯一性
- 可遍历的数据集
- 泛型,避免运行时类型检测,避免运行时装箱拆箱
- 散列存储,不固定长度,添加删除时,无需元素位置的调整
C#中的数据结构的更多相关文章
- java中的数据结构(集合|容器)
对java中的数据结构做一个小小的个人总结,虽然还没有到研究透彻jdk源码的地步.首先.java中为何需要集合的出现?什么需求导致.我想对于面向对象来说,对象适用于描述任何事物,所以为了方便对于对象的 ...
- Python 中的数据结构总结(一)
Python 中的数据结构 “数据结构”这个词大家肯定都不陌生,高级程序语言有两个核心,一个是算法,另一个就是数据结构.不管是c语言系列中的数组.链表.树和图,还是java中的各种map,随便抽出一个 ...
- [转]详细介绍java中的数据结构
详细介绍java中的数据结构 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类.一起来看本文吧! 也许你已经熟练使用了java.util包里面的各 ...
- 详细介绍java中的数据结构
详细介绍java中的数据结构 http://developer.51cto.com/art/201107/273003.htm 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个 ...
- sql点滴42—mysql中的数据结构
原文:sql点滴42-mysql中的数据结构 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小 ...
- PHP中的数据结构
PHP7以上才能安装和使用数据结构,安装比较简单: 1. 运行命令 pecl install ds 2. 在php.ini中添加 extension=ds.so 3. 重启PHP或重载配置 Coll ...
- Python中的数据结构
Python中的数据结构 这里总结一下Python中的内置数据结构(Built-in Data Structure):列表list.元组tuple.字典dict.集合set,涵盖的仅有部分重点,详细地 ...
- 在Object-C中学习数据结构与算法之排序算法
笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳. 目录 选择排序 冒泡排序 插入排序 快速 ...
- PHP中的数据结构:DS扩展
PHP7以上才能安装和使用该数据结构扩展,安装比较简单: 1. 运行命令 pecl install ds 2. 在php.ini中添加 extension=ds.so 3. 重启PHP或重载配置 在这 ...
- JavaScript中的数据结构及实战系列
本系列主要是讲解JavaScript中的数据结构及在实际项目中遇到的地方 JavaScript中的数据结构及实战系列(1):队列 JavaScript中的数据结构及实战系列(2):栈
随机推荐
- Mysql 添加 create_time, update_time 创建时间 更新时间 自动更新
# 添加 创建 更新 时间字段 ALTER TABLE `表名` ADD COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTA ...
- 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...
- spring boot 通过feign调用api接口
目的:远程调用服务器api,直接上步骤: 1,添加maven依赖,这是必须的: <dependency> <groupId>org.springframework.cloud& ...
- C++ 面向对象高级设计
inline关键字 类声明内定义的函数,自动成为inline函数,类声明外定义的函数,需要加上inline关键字才能成为inline函数 构造函数 应该使用列表初始化 class complex { ...
- 【VritualEnv】虚拟环境的介绍和基本使用
一.virtualenv的介绍: 在python开发中,我们可能会遇到一种情况,就是当前的项目依赖的是某一个版本,但是另一个项目依赖的是另一个版本,这样就会造成依赖冲突,而virtualenv就是解决 ...
- hdu2846 字典树(带id的)
题意: 给你一些模式串,然后给你一些提问,每个提问是给你一个串,问你这个串在上 面的模式串中出现的次数. 思路: 一开始想到hash,但是因为用的是map,所以超时了,map的操 ...
- 最新版Theos.2016.08的安装方法
http://bbs.pediy.com/showthread.php?t=212425 标题: [翻译]手把手安装最新版Theos.2016.08作者: roysue时间: 2016-08-26,1 ...
- Webpack的热更新是如何做到的?原理是什么?
一.是什么 HMR全称 Hot Module Replacement,可以理解为模块热替换,指在应用程序运行过程中,替换.添加.删除模块,而无需重新刷新整个应用 例如,我们在应用运行过程中修改了某个模 ...
- pr恢复工作区
当工作区操作的位置很乱时 平时如果关闭的窗口,可以在窗口中查看 也可以选择新建工作区,保存成一个自己所需工作区
- 逆向工程初步160个crackme-------3
这个Crackme3 涉及到浮点指令以及浮点数的存储与运算,我没学习过浮点指令,不得不从网上恶补了1个小时,一边看汇编指令一边百度其指令含义. 回头得好好补补这方面的知识了,太菜了! 我大致了解了一下 ...