前言
在Unity有一个与数据容器息息相关的命名空间:System.Collections.Generic
,其包含用于定义泛型集合的接口和类,可允许用户创建强类型集合,以提供比非泛型强类型集合更好的类型安全性和性能
本篇博客用来介绍这些通过泛型实现的安全类型的数据容器(ArrayList
是一个例外),话不多说,直接开始
Array
特点:
数组是一种线性结构,需要声明长度
通过下标查找时间复杂度为O(1)
插入删除比较复杂
常用属性:
Length
:获取出数组所有维度的长度Rank
:获取数组的维度
方法:
Clear(Array, Int32, Int32)
:在指定数组的某一范围将数组恢复为默认值(比如整数数组归零)Sort(Array)
:对于数组中的元素进行排序Clone()
:创建Array副本GetType()
:获取当前数组实例的TypeInitialize()
:通过调用值类型的无参数构造函数,初始化值类型 Array 的每一个元素Reverse(Array)
:反转数组中元素的顺序
使用方式:
通过下面的代码来理解一些关键属性方法的使用方式:
int[] nums = new int[] {
2, 7, 11, 15 };
//leangth来获取数组的长度
Console.WriteLine(nums.Length);
//对数组中元素进行排序
Array.Sort(nums);
//反转数组中元素的顺序
Array.Reverse(nums);
//复制nums数组
int[] nums_Copy = (int[])nums.Clone();
//清除数组元素,将nums中所有元素变为0
Array.Clear(nums, 0, nums.Length);
//同样将数组中元素恢复默认
nums.Initialize();
ArrayList
ArrayList核心是数组,但是是在数组的基础上进行了扩展,首先就是其动态扩容的特点,然后再一定程度上同日出生了其查询速度
ArrayList的使用需要引入命名方法:using System.Collections;
特点:
- 可以动态扩容:通过创建一个更大的新数组,来将原来的数组转移到新数组
- 插入删除比数组方便
- 类似于数组,同样通过下标索引
存储的是对象:
- 需要装箱、拆箱操作
- 是不安全类型
注意
- 装箱:将值类型转换为引用类型(隐式转换)
- 拆箱:将引用类型转换为值类型(显式转换)
属性