[Unity] Unity基础:数据管理:数组与ArrayList与List列表与Dictionary字典

查看:823 |回复:0 | 2019-11-15 11:06:55

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 源支始 于 2019-11-15 16:46 编辑

image.png
话不多说。
一、数组
数组是C#自带的一种储存管理数据的方式,声明方式为:
  1.     //声明一个储存int的数组
  2.     int[] 储存int的数组 = new int[5];
点击此处复制文本
这样就声明了一个长度为5的储存int类型的数组,数组名为“储存int的数组”。
  1. 储存int的数组[0]
点击此处复制文本
为该数组的第一个元素
  1. 储存int的数组[4]
点击此处复制文本
为该数组的第五个元素
数组就是读取速度快,但是其他是真的不太行,缺点有:
1.难以插入数据,你想在两个值中间放个数,真的难。
2.占内存,声明的时候必须指定长度,就是说声明的时候这点内存就给你占了。
3.增加数据难,“我怎么知道我要创建多少个怪?”,我声明了5个长度,又想增加长度的时候又要整一大堆东西。
数组深入的话能讲的挺多,以后看整个单贴讲讲。





二、ArrayList
ArrayList是一个非常非常厉害的工具,它什么都能存。声明方法:
  1.     //声明一个ArrayList
  2.     ArrayList 这是ArrayList =new ArrayList();
点击此处复制文本
这样就声明好了一个名字叫“这是ArrayList”的ArrayList了,它在声明的时候不需要声明具体的长度。
用它来储存东西:
  1. //向其中添加元素,没返回值
  2.             这是ArrayList.Add("aaa,aaa,abcdefg");
  3.             这是ArrayList.Add("bbb,bbb,abcdefg");
点击此处复制文本
这是常用的几个方法,还有很多就不演示了,自己“.”一下
它是怎么做到可以储存所有类型的东西的呢?我们对它按F12试试
微信截图_20191115100012.png
然后就看到了

鬼鬼,全是Object。
Object是所有类型的基类,什么int,string都继承自object,所以它才能储存。
储存的时候,计算机将你要放的东西转化为Object会消耗大量资源,这就是装箱操作。
而计算机自己将Object转化为int,string,float等又会消耗大量资源,这就是拆箱操作。



所以这东西小小的用一点没什么事,大量的用起来卡炸了,拒绝嗷。



三、List
List也是什么都能存,不过它和ArrayList不一样,它是在声明的时候你就要给个类型。
不过这个不用规定长度,用起来比数组舒服很多。
声明方法:
  1.     //声明一个用以储存string元素的list
  2.     List<string> ListAAAAA =new List<string>();
点击此处复制文本
这样就声明好了一个名字叫“ListAAAAA”的储存string类型的list。
怎么储存呢
  1. //向其中添加元素
  2.         ListAAAAA.Add("aaa,aaa,abcdefg");
  3.         ListAAAAA.Add("bbb,bbb,abcdefg");
点击此处复制文本
其他的方法都和上面写的ArrayList的差不多,这里不复读了。
可以看到List就是有一点好,它不装箱拆箱,顺滑很多,不卡了。

四、Dictionary字典
字典就是高强化版List,它厉害了许多,和List搭配起来可以做很多事,现在只讲怎么用的,搭配什么的以后可能也许会写。
声明:
  1. //声明一个以string类型为索引,值为string的字典
点击此处复制文本
这样就整了4个活,声明了4个字典,我们拿第三个来讲
算了,和list的配合以后可能也许再讲。

拿第一个dictionaryBBBBBBBBBBBBBBBB讲。
怎么储存数据:
  1. //在字典里写入元素
  2. dictionaryBBBBBBBBBBBBBBBB["今天吃啥"]="恰土";
点击此处复制文本
这样就储存进去了一个元素,怎么调用:
  1. //Debug.Log为unity自带的一个方法,作用是在unity控制台打印
点击此处复制文本
字典还可以储存游戏物体,可以储存的很多,具体的使用自己琢磨一下,整个对象池啥的


2019-11-15 11:06:55  
 赞 赞 0

使用道具 登录

0个回答,把该问题分享到群,邀请大神一起回答。

CG 游戏行业专业问题

手机游戏引擎手游引擎Unity3D技术
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表