前言在Unity有一個(gè)與數(shù)據(jù)容器息息相關(guān)的命名空間: 本篇博客用來介紹這些通過泛型實(shí)現(xiàn)的安全類型的數(shù)據(jù)容器( Array特點(diǎn): 數(shù)組是一種線性結(jié)構(gòu),需要聲明長度 通過下標(biāo)查找時(shí)間復(fù)雜度為O(1) 插入刪除比較復(fù)雜 常用屬性:
方法:
使用方式: 通過下面的代碼來理解一些關(guān)鍵屬性方法的使用方式: int[] nums = new int[] { 2, 7, 11, 15 };
//leangth來獲取數(shù)組的長度
Console.WriteLine(nums.Length);
//對(duì)數(shù)組中元素進(jìn)行排序
Array.Sort(nums);
//反轉(zhuǎn)數(shù)組中元素的順序
Array.Reverse(nums);
//復(fù)制nums數(shù)組
int[] nums_Copy = (int[])nums.Clone();
//清除數(shù)組元素,將nums中所有元素變?yōu)?
Array.Clear(nums, 0, nums.Length);
//同樣將數(shù)組中元素恢復(fù)默認(rèn)
nums.Initialize();ArrayListArrayList核心是數(shù)組,但是是在數(shù)組的基礎(chǔ)上進(jìn)行了擴(kuò)展,首先就是其動(dòng)態(tài)擴(kuò)容的特點(diǎn),然后再一定程度上同日出生了其查詢速度 ArrayList的使用需要引入命名方法: 特點(diǎn):
存儲(chǔ)的是對(duì)象:
屬性
方法
使用方式 關(guān)于 //創(chuàng)建
ArrayList m_arrayList = new ArrayList();
ArrayList al = new ArrayList { 1, 2, 3, 4 };
//元素插入
m_arrayList.Add("001");
m_arrayList.Add(1);
//第一中遍歷方式
for(int i=0;i<m_arrayList.Count;i++)
{
Console.WriteLine(m_arrayList[i]);
}
//第二種遍歷方式
foreach(Object j in m_arrayList)
{
Console.WriteLine(j);
}ListList就是通過將泛型數(shù)據(jù)存儲(chǔ)在一個(gè)泛型數(shù)組中,從而實(shí)現(xiàn)一個(gè)數(shù)據(jù)安全類型的列表,添加元素時(shí)若超過中當(dāng)前泛型數(shù)組的容量,則進(jìn)行二倍擴(kuò)容,進(jìn)而實(shí)現(xiàn) 特點(diǎn): 核心是數(shù)組:
內(nèi)存優(yōu)化:
屬性:
方法:
使用方式 通過上面的屬性方法,也可以看出其使用方式于 //創(chuàng)建一個(gè)列表,長度確定的情況下可以規(guī)定長度,減少new的產(chǎn)生
List<int> nums = new List<int>(12);
//向列表插入數(shù)據(jù)
nums.Add(1);
nums.Add(2);
//遍歷列表元素
for(int i=0;i<nums.Count;i++)
{
Console.WriteLine(nums[i]);
}
foreach(int num in nums)
{
Console.WriteLine(num);
}
//判斷某一個(gè)元素是否在列表中
if(nums.Contains(1))
{
Console.WriteLine("1在列表nums中");
}
//排序
nums.Sort();HashTable特點(diǎn)
//哈希表結(jié)構(gòu)體
private struct bucket {
public Object key;//鍵
public Object values;//值
public int hashCode;//哈希碼
}原理:
LinkedList特點(diǎn):
其屬性方法: 屬性:
方法:
Dictionary
字典在C#中是一種很常用的數(shù)據(jù)容器,在
特點(diǎn):
屬性:
方法:
使用方式: 關(guān)于字典的使用方式還是比較復(fù)雜的,主要是兩個(gè)變量以及兩者之間的對(duì)應(yīng)關(guān)系的理解 //創(chuàng)建一個(gè)字典
Dictionary<string, string> peoples = new Dictionary<string, string>();
//插入鍵值對(duì)
if(!peoples.ContainsKey("小明"))
{
peoples.Add("小明", "男");
peoples.Add("小紅", "女");
}
//遍歷字典中所有的鍵,同樣可以遍歷所有的值
Dictionary<string,string>.KeyCollection keys = peoples.Keys;
foreach(string s in keys)
{
Console.WriteLine(s);
}
//遍歷字典并輸出鍵和值
foreach (KeyValuePair<string, string> kv in peoples)
{
Console.WriteLine(kv.Key);
Console.WriteLine(kv.Value);
}
//修改鍵值對(duì)的值
if (peoples.ContainsKey("小明"))
{
peoples["小明"] = "女";
}
//刪除鍵值對(duì)
if (peoples.ContainsKey("小明"))
{
peoples.Remove("小明");
}Queue隊(duì)列的特點(diǎn)是先進(jìn)先出,主要是應(yīng)用在一些特殊的場景,需要實(shí)現(xiàn)數(shù)據(jù)的一個(gè)先進(jìn)先出的效果 特點(diǎn):
屬性:
Stack特點(diǎn):
屬性:
方法
|
|
|