unity_数据结构(常见数据结构及适用场景)

摘要:
5.排队FIFO 6。堆栈FIFO 7。Dictionary<K,T>:在使用几种常用数据结构以空间换时间的过程中,Array需要处理的元素数量已确定,并且需要使用下标。但是,建议使用List<T>ArrayList,这是不推荐的。建议使用List<T>List<T<泛型List,当需要处理的元素数量不确定时,通常建议使用LinkedList<T〕。如果需要频繁添加或删除节点,则两端可以添加或减去队列<T>先进先出(FIFO)堆栈<T>后进先出(LIFO)字典<K,T>需要键值对,并且需要快速操作
常见的数据结构:

1.Array:

最简单的数据结构

特点:
数组存储在连续的内存上。
数组的内容都是相同类型。
数组可以直接通过下标访问。
优点:
由于是在连续内存上存储的,所以它的索引速度非常快,访问一个元素的时间是恒定的也就是说与数组的元素数量无关,而且赋值与修改元素也很简单。
缺点:
由于是连续存储,所以在两个元素之间插入新的元素就变得不方便。
声明一个新的数组时,必须指定其长度。过长时会浪费内存,过短时,则面临这溢出的风险。

2.ArrayList:

为了解决数组创建时必须指定长度以及只能存放相同类型的缺点而推出的数据结构。ArrayList是System.Collections命名空间下的一部分。优点:
不必在声明ArrayList时指定它的长度
可以存储不同类型的元素,这是由于ArrayList会把它的元素都当做Object来处理。

3.List<T>:

为了解决ArrayList不安全类型与装箱拆箱的缺点
优点:
融合了Array可以快速访问的优点以及ArrayList长度可以灵活变化的优点。

4.LinkedList<T>:

链表和数组最大的不同之处就是在于链表在内存存储的排序上可能是不连续的。
优点:
添加元素和删除元素都要比数组要有优势。
缺点:
访问时候无法利用下标,而是必须从头结点开始,逐次遍历下一个节点直到寻找到目标。所以当需要快速访问对象时,数组无疑更有优势。

5.队列

 先进先出

6.栈

 先进后出

7.Dictionary<K,T>:

以空间换时间

几种常见数据结构的使用情景

Array 需要处理的元素数量确定并且需要使用下标时可以考虑,不过建议使用List<T>
ArrayList 不推荐使用,建议用List<T>
List<T>泛型List 需要处理的元素数量不确定时 通常建议使用
LinkedList<T> 链表适合元素数量不固定,需要经常增减节点的情况,2端都可以增减
Queue<T> 先进先出的情况
Stack<T> 后进先出的情况
Dictionary<K,T> 需要键值对,快速操作

免责声明:文章转载自《unity_数据结构(常见数据结构及适用场景)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇idea关于svn的使用com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ES跨集群数据迁移

跨集群数据迁移 用户在腾讯云上自建的ES集群或者在其它云厂商购买的ES集群,如果要迁移至腾讯云ES,用户可以根据自己的业务需要选择适合自己的迁移方案。如果业务可以停服或者可以暂停写操作,可以参考离线迁移的四种方案。 离线迁移 离线迁移需要先停止老集群的写操作,将数据迁移完毕后在新集群上进行读写操作。适合于业务可以停服的场景。 离线迁移大概有以下几种方式:...

scatter gather 使用

先来点概念: http://blog.csdn.net/fudan_abc/archive/2007/07/28/1713976.aspx 无聊的it玩家们创建了有一个词,叫做scatter/gather,她是一种用于高性能IO的标准技术.她通常意味着一种DMA传输方式,对于一个给定的数据块,她老人家可能在内存中存在于一些离散的缓冲区,换言之,就是说一些不...

oracle数据库date类型和mysql数据库datetime类型匹配

oracle数据库有date类型,但是没有datetime类型 mysql数据库既有date类型也有datetime类型。Oracle数据库的date类型和mysql的date类型是不一样的,Oracle的date类型为YYYY-MM-DD hh:mm:ss和mysql中的datetime类型匹配, 而 mysql 的date类型为 yyyy-mm-dd。...

Jmeter自动化测试 数据驱动测试,将数据存入csv文件中来调用,或将数据存在DB中进行调用

1. 将测试的用例名称,测试请求方式,测试链接,预置数据,断言等都放到excel中,然后转成csv格式,在用Jmeter带的csv数据配置文件导入 运行之前将线程组中配置,线程数设置为1,循环的次数设置为测试用例数! 点击执行,将一各个请求顺序执行。 测试数据如下: Jmeter测试计划如下: 注意:excel格式转csv的时候,涉及到字符转义,入参...

数据结构基础温故-1.线性表(上)

开篇:线性表是最简单也是在编程当中使用最多的一种数据结构。例如,英文字母表(A,B,C,D...,Z)就是一个线性表,表中的每一个英文字母都是一个数据元素;又如,成绩单也是一个线性表,表中的每一行是一个数据元素,每个数据元素又由学号、姓名、成绩等数据项组成。顺序表和链表作为线性表的两种重要的存在形式,它们是堆栈、队列、树、图等数据结构的实现基础。 一、线性...

php 访问java接口数据

$header = []; $header[] = 'Accept:application/json'; $header[] = 'Content-Type:application/json;charset=utf-8'; $data = $_GPC['mobile']; $ch = curl_init();...