觉得有帮助请点赞关注收藏~~~
一、数组
数组时有序的元素序列,存在有限个相同的变量的集合叫做数组名,组成数组二点各个变量称为数组的分量,又称为数组的元素,有时也称为下标变量,用于区分数组的各个元素的数组编号称为下标。
初始化数组
datatype [] arrayname
datetype指定存储在数组中的元素的类型
[]指定数组维度
double[] balance =new double[10];
数组赋值
可以通过使用数组的下表给一个单独的数组元素赋值
double[] balance =new double[10];
balance[0]=4500.0;
也可以再声明数组的同时给数组赋值
double[] balance ={2333.0,5333.0,24400.0};
访问数组元素
元素是通过数组名称[下标]这种方式访问的,这是通过把元素的下标放置在数组名称后的方括号中实现的
double salary=balance[4];
测试代码如下
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_9_1 : MonoBehaviour { void Start() { int[] n = new int[5]; /* n 是一个带有 10 个整数的数组 */ int i, j; /* 初始化数组 n 中的元素 */ for (i = 0; i < 5; i++) { n[i] = i + 100; } /* 输出每个数组元素的值 */ for (j = 0; j < 5; j++) { Debug.Log("元素[{" + j + "}] = {" + n[j] + "}"); } } }
多维数组
多维数组最简单的形式是二维数组,本质上是一个一维数组的列表
数组中每个元素用a[i,j]来表示的 i是行 j是列
测试代码如下
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_9_2 : MonoBehaviour { void Start() { /* 一个带有 5 行 2 列的数组 */ int[,] a = new int[5, 2] { { 0, 1 }, { 2, 3 }, { 4, 5 }, { 6, 7 }, { 8, 9 } }; int i, j; /* 输出数组中每个元素的值 */ for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { Debug.Log("a[{" + i + "},{" + j + "}] = {" + a[i, j] + "}"); } } } }
二、集合
集合Collection是专门用于存储数据和检索数据的类,分别提供了对栈 队列 列表 哈希表的支持 大多数集合实现了相同的接口
ArrayList
该对象的大小是按照其存储的数据的多少动态扩充与收缩的,所以在声明ArrayList对象时并不需要指定它的长度
ArrayList list1=new ArrayList(); list1.Add("zhangsan"); list1.Add("5333");
从上面可以看出 ArrayList允许插入不同类型的数据,这也导致容易产生安全问题
List
List大部分操作与ArrayList相同,但是最关键的区别在于List在声明的时候需要为集合内的元素声明对象类型
List<String> list=new List<String>();
队列
队列代表了一个先进先出的对象集合,如果需要对各项元素进行先进先出的访问,则使用队列,在列表中添加一项,称为入队,从列表中删除一项,称为出队
下面列出Queue类的常用属性和方法
Count 获取Queue中包含的元素个数
Clear() 从Queue中删除所有的元素
Contains() 判断某个元素是否在Queue中
Dequeue() 删除并返回在Queue的开头的对象
Enqueue() 向Queue的末尾添加一个对象
ToArray() 复制Queue到一个新的数组中
TrimToSize() 设置容量为Queue中元素的个数
测试代码如下
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_9_3 : MonoBehaviour { void Start() { Queue q = new Queue();//初始化队列 q.Enqueue('A');//添加元素 q.Enqueue('B'); Debug.Log("添加元素前:"); foreach (char item in q) { Debug.Log(item); } q.Enqueue('C'); Debug.Log("添加元素后:"); foreach (char item in q) { Debug.Log(item); } q.Dequeue();//删除元素 Debug.Log("删除元素后:"); foreach (char item in q) { Debug.Log(item); } } }
堆栈
堆栈代表了一个后进先出的对象集合,如果需要对各项进行后进先出的访问,则使用堆栈,在列表中添加一项称为推入元素,从列表中删除一项,称为弹出元素
下面是堆栈的常用属性和方法
Count 获取Stack中包含的元素个数
Peek() 返回在Stack顶部的对象 但不删除它
Pop() 删除并返回在Stack顶部的对象
Push() 向Stack的顶部添加一个对象
ToArray() 复制Stack到一个新的数组中
测试代码如下
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_9_4 : MonoBehaviour { void Start() { Stack st = new Stack();//初始化队列 st.Push('A');//添加元素 st.Push('B'); Debug.Log("添加元素前:"); foreach (char item in st) { Debug.Log(item); } st.Push('C'); Debug.Log("添加元素后:"); foreach (char item in st) { Debug.Log(item); } char ch =(char)st.Peek();//返回在 Stack 的顶部的对象,但不移除它 Debug.Log("返回在 Stack 的顶部的对象:"+ch); st.Pop();//删除元素 Debug.Log("删除元素后:"); foreach (char item in st) { Debug.Log(item); } } }
哈希表
哈希表类代表了一系列基于键的哈希代码组织起来的键值对,它使用键访问集合中的元素
如果使用键访问元素,则使用哈希表,而且可以识别一个有用的键值,哈希表中的每一项都有一个键值对,键用于访问集合中的项目
常用属性与方法如下
Count 包含键值对个数
IsFixedSize 判断哈希表是否具有固定大小
IsReadOnly 判断哈希表是否只读
Item 获取或设置与指定的键相关的值
Keys 获取一个ICollection 包含哈希表中的键
Values 获取一个ICollection 包含哈希表中的值
Add() 向哈希表中添加一个带有指定的键和值的元素
ContainsKey() 判断哈希表是否包含指定的键
Contains Value() 判断哈希表是否包含指定的值
Remove() 从哈希表中删除带有指定的键的元素
测试代码如下
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_9_5 : MonoBehaviour { void Start() { Hashtable ht = new Hashtable(); ht.Add("001", "张三"); ht.Add("002", "李四"); if (ht.ContainsValue("李四")) { Debug.Log("这个名字已经添加到名单上了"); } else { ht.Add("003", "王五"); } // 获取键的集合 ICollection key = ht.Keys; foreach (string k in key) { Debug.Log(k + ": " + ht[k]); } } }
字典
字典是一种可以让我们通过索引号查询到特定数据的数据结构类型
测试代码如下
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_9_6 : MonoBehaviour { void Start() { Dictionary<string, string> students = new Dictionary<string, string>(); students.Add("S001", "张三");//添加 students.Add("S002", "李四");//添加 students.Add("S003", "王五");//添加 students["S003"] = "赵六";//修改 students.Remove("S000"); //删除 foreach (string key in students.Keys)//查询Keys Debug.Log(key); foreach (string value in students.Values)//查询Values Debug.Log(value); foreach (KeyValuePair<string, string> stu in students) //查询Keys和Values Debug.Log("Key:" + stu.Key + " Name:" + stu.Value); } }
创作不易 觉得有帮助请点赞关注收藏~~~