C# 数据容器详解:Array、List、Dictionary、LinkedList、Queue、Stack

ArrayList关于ArrayList的原理:核心是数组:可以动态扩容:通过创建一个更大的新数组,来将原来的数组转移到新数组插入删除方便存储的是对象: 需要装箱、拆箱操作 是不安全类型List核心是数组: 可以动态扩容:同样是创建新的更大数组来迁移数据 使用泛型来实现对装箱拆箱操作的避免内存优化 对于List可以规定长度,来避免 动态扩容操作,这样就可以避免新的内存空间的消耗HashTable键值对形式: ton...
摘要由CSDN通过智能技术生成

前言

在Unity有一个与数据容器息息相关的命名空间:System.Collections.Generic,其包含用于定义泛型集合的接口和类,可允许用户创建强类型集合,以提供比非泛型强类型集合更好的类型安全性和性能

本篇博客用来介绍这些通过泛型实现的安全类型的数据容器(ArrayList是一个例外),话不多说,直接开始


Array

特点:

   数组是一种线性结构,需要声明长度
   通过下标查找时间复杂度为O(1)
   插入删除比较复杂

常用属性:

  • Length:获取出数组所有维度的长度
  • Rank:获取数组的维度

方法:

  • Clear(Array, Int32, Int32):在指定数组的某一范围将数组恢复为默认值(比如整数数组归零)
  • Sort(Array):对于数组中的元素进行排序
  • Clone():创建Array副本
  • GetType():获取当前数组实例的Type
  • Initialize():通过调用值类型的无参数构造函数,初始化值类型 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;

特点:

  • 可以动态扩容:通过创建一个更大的新数组,来将原来的数组转移到新数组
  • 插入删除比数组方便
  • 类似于数组,同样通过下标索引

存储的是对象:

  • 需要装箱、拆箱操作
  • 是不安全类型

注意

  • 装箱:将值类型转换为引用类型(隐式转换)
  • 拆箱:将引用类型转换为值类型(显式转换)

属性

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之凌儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值