[星火进阶]容器的选择

2024/4/1338 浏览主题教程
先叠甲:我不是大佬,也不会代码,以下所有内容都是自我摸索过程中总结的经验,如有错误还请指正。
一、先说明容器的概念:有一个类专门用来存放其它类的对象,这个类就叫做容器,它就是将若干性质相同或相近的类对象组合在一起而形成的一个整体 。
二、星火中的常用容器:数组、map、集合、任意值、简单表、任意数据、自定义类
三、各种容器的优缺点(关键词解释,键:容器的钥匙,值:钥匙对应的值,本地:仅限于服务端或者客户端的环境,异地:对立于服务端或者客户端的环境)(书写预制体的好处:减少运行时计算,可作为数据库)
1.数组:
优点:
1.可以提前书写预制体
2.键为数值,可用作很多对象的id(方便阅读)
3.官方预制的很多类,可通过数组传递到异地
缺点:
1.引用只限于本地,数编,界编无法引用
2.键只有数值,使用的局限性大
3.不知道键时,需遍历,有些情况会浪费运算资源
总结:数组应用的范围大,键为数值时:增删快,可提前书写预制体但只限于本地引用,我一般作为数据库使用
2.map
优点:
1.键可以为任意类型,在运行时,作为临时储存有关联的两个对象很方便
缺点:
1.不能提前书写预制体
2.键为数值的情况下,增删慢
3.引用只限于本地,数编,界编无法引用
总结:map的键可以为任意类型,可应用的范围很广,但不能书写预制体,我一般作为运行时的临时数据库使用
3.集合
优点:
1.没有键,只有值,在运行时储存只有一个对象时方便
2.值不能重复,所以可以通过这种特性,来快速随机出指定数量的对象
缺点:
1.只有值,没有键,所以所有的值不会和任何值有关联
2.不能书写预制体
3.引用只限于本地,数遍,界编无法引用
总结:集合作为,储存多个单种类型的对象时,占用的资源比map小。我一般作为运行时临时数据库使用,来统计同一种对象的数量
4任意值
优点:
1.在对象上快速储存任意值
2.只要是本地环境都可以通过对象获取值
缺点
1.只有对象时才可以使用
总结:写自定义ai的不二之选
5.简单表
简单表我不用(手动滑稽)
6.任意数据
优点:
1.双端维护,我常用于作为双端都可以读取的数据库
缺点:
1.读取麻烦
2.修改麻烦
总结:数据库的一把好手
7.自定义类
优点:
1.值可以为多种类型
2.可书写预制体
缺点:
1.作为云变量值时,增删新的成员,处理起来麻烦
四、常用情况推荐哪种容器
1.双端数据库:首选任意数据
2.多人游戏储存玩家数据:首选数组,下标0的位置随意填充一下
3.本地数据库:首选数组
4.运行时随机指定数量的对象:首选集合
5.运行时两个对象有强关联:首选map
6.客户端唯一真神:自定义类
最后一句话:实际情况,需求的不同,分析不同容器对于需求的实现难度,和增删快慢,做出不同的选择。随机应变才是王道。
打个广告:有便宜的美术嘛😭救救孩子吧
TapTap
7
4
10