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):栈
随机推荐
- Vue3+Vite引入Echarts5.0图表库
1 概述 环境Vue3+Vite,需要引入ECharts库. 2 尝试 目前ECharts已更新到5.0版本,在Vue中引入并不难,npm/cnpm安装后在需要的组件中引入: import echar ...
- Linux入门之基本的概念、安装和操作
目录 Linux基本概念 Linux的安装 虚拟机安装CentOS7 CentOS设置网络 Linux基本操作命令 文件目录操作命令 进程操作命令 文本操作命令 Linux权限操作 用户和组操作命令 ...
- Spring Cloud Alibaba(4)---Nacos(注册中心)
Nacos(注册中心) 有关Spring Cloud Alibaba之前写过三篇文章. Spring Cloud Alibaba(1)---入门篇 Spring Cloud Alibaba(2)--- ...
- Message Decoding UVA - 213
Some message encoding schemes require that an encoded message be sent in two parts. The fifirst par ...
- All in All UVA - 10340
You have devised a new encryption technique which encodes a message by inserting between its charac ...
- JAVAEE_Servlet_04_在service()方法中连接数据库获取表信息
在service()方法中连接数据库获取表信息 代码: package com.shige.controller; import javax.servlet.*; import java.io.IOE ...
- 内网渗透-windows认证
前言:全国HW刚结束,加强一波内网概念,去年11月红队成绩并不理想,这次必拿下好成绩.冲!!! 0x00 本地认证 本地认证基础知识 在本地登录Windows的情况下,操作系统会使用用户输入的密码作为 ...
- php正则表达式过滤空格 换行符 回车
我整理了几个比较适合的实例了,对于它们我们是有很多站长都测试过并用过了,不过文章最后我的总结也是生重要的哦,至于原因我也说不上了,因为chr是ascii编码了所以有时浏览器会自动转成ascii,特别像 ...
- hdu3074 线段树求区间乘积(单点更新)
题意: 给你n个数,两种操作,(1) 把第b个数改成c (2)算出b-c的乘积,结果对1000000007取余. 思路: 线段树单点更新,简单题目,不多解释,具体看代码. #i ...
- Day008 下标越界及小结
数组的四个基本特点 其长度是确定的.数组一旦被创建,它的大小就是不可以改变的. 其元素必须是相同类型,不允许出现混合类型. 数组中的元素可以是任何数据类型,包括基本类型和引用类型. 数组变量属于引用类 ...