前言在Unity有一個與數(shù)據(jù)容器息息相關(guān)的命名空間: 本篇博客用來介紹這些通過泛型實現(xiàn)的安全類型的數(shù)據(jù)容器( Array特點: 數(shù)組是一種線性結(jié)構(gòu),需要聲明長度 通過下標(biāo)查找時間復(fù)雜度為O(1) 插入刪除比較復(fù)雜 常用屬性:
方法:
使用方式: 通過下面的代碼來理解一些關(guān)鍵屬性方法的使用方式: int[] nums = new int[] { 2, 7, 11, 15 }; //leangth來獲取數(shù)組的長度 Console.WriteLine(nums.Length); //對數(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ò)展,首先就是其動態(tài)擴(kuò)容的特點,然后再一定程度上同日出生了其查詢速度 ArrayList的使用需要引入命名方法: 特點:
存儲的是對象:
屬性
方法
使用方式 關(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ù)存儲在一個泛型數(shù)組中,從而實現(xiàn)一個數(shù)據(jù)安全類型的列表,添加元素時若超過中當(dāng)前泛型數(shù)組的容量,則進(jìn)行二倍擴(kuò)容,進(jìn)而實現(xiàn) 特點: 核心是數(shù)組:
內(nèi)存優(yōu)化:
屬性:
方法:
使用方式 通過上面的屬性方法,也可以看出其使用方式于 //創(chuàng)建一個列表,長度確定的情況下可以規(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); } //判斷某一個元素是否在列表中 if(nums.Contains(1)) { Console.WriteLine("1在列表nums中"); } //排序 nums.Sort(); HashTable特點
//哈希表結(jié)構(gòu)體 private struct bucket { public Object key;//鍵 public Object values;//值 public int hashCode;//哈希碼 } 原理:
LinkedList特點:
其屬性方法: 屬性:
方法:
Dictionary
字典在C#中是一種很常用的數(shù)據(jù)容器,在
特點:
屬性:
方法:
使用方式: 關(guān)于字典的使用方式還是比較復(fù)雜的,主要是兩個變量以及兩者之間的對應(yīng)關(guān)系的理解 //創(chuàng)建一個字典 Dictionary<string, string> peoples = new Dictionary<string, string>(); //插入鍵值對 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); } //修改鍵值對的值 if (peoples.ContainsKey("小明")) { peoples["小明"] = "女"; } //刪除鍵值對 if (peoples.ContainsKey("小明")) { peoples.Remove("小明"); } Queue隊列的特點是先進(jìn)先出,主要是應(yīng)用在一些特殊的場景,需要實現(xiàn)數(shù)據(jù)的一個先進(jìn)先出的效果 特點:
屬性:
Stack特點:
屬性:
方法
|
|