【unity3d-C#學習筆記】C#中常用的資料結構及遍歷方法
阿新 • • 發佈:2019-01-23
常用的集合類:ArrayList,Queue,Stack,SortedList,Hashtable
陣列:
Array:
1.資料儲存在連續的記憶體上。
2.陣列的語速都是同類型的。
3.陣列可以通過下標訪問
ArrayList
1.不必宣告指定時的長度
2.可以儲存不用型別的元素
3.ArrayList是型別不安全的。
4.陣列儲存值型別是會發生裝箱拆箱操作,因此會產生額外的效能開銷,導致效能下降。
List
1.確保了型別安全
2.取消了裝箱和拆箱操作
3.融合了Array可以快速訪問的特點
陣列適合資料的數量又上線,且需要快速訪問其元素內容的情況。
連結串列適合元素數量不固定且需要經常增刪結點的情況。
一、ArrayList
特點:有序的物件列表、大小不固定、按照索引訪問。
1.當儲存容量不足時,按照2的冪次規律擴容;
2.可以儲存不同型別的元素
ArrayList list =new ArrayList();
//使用foreach進行遍歷
foreach(int num inlist)
{
Console.WriteLine(num+” “);
}
//或者使用for迴圈和索引來進行遍歷
for(int i;i<list.Count;i++)
{
Console.WriteLine(list[i]+” “);
}
注意:ArrayList的Capacity屬性表示容量,而Count屬性表示其中容納元素的實際數目。
二、Queue
特點:先進先出的物件集合(FIFO)。
遍歷方法:
Queue q=new Queue();
IEnumerator myEnumerat = q.GetEnumerator();//獲取能迴圈訪問佇列列舉數的IEnumerator介面例項
while(myEnumerator.MoveNext())
{
Console.Write(myEnumerator.Current+” “);
}
注意:
當Queue內容發生變化時,需要重新獲取IEnumerator介面例項。
三、Stack
特點:先進後出的物件集合(LIFO)。
遍歷方法:同Queue遍歷方法
四、SortedList
特點:鍵/值對的集合,存入的元素會自動按照鍵排序,可以按照鍵或者索引訪問
Hashtable(key,object)元素的集合,按照鍵的雜湊程式碼組織,通過key可以訪問到指定的元素。
Hashtable ht=new Hashtable();
//獲取鍵:
foreach(string key in ht.Keys)
{
Console.Write(key+” \t“);
}
//獲取值:
foreach(string value in ht.Values)
{
Console.Write(value+”\t “);
}
//如果希望同時獲得鍵和值,可以根據Hashtable的元素型別為DictionaryEntry來獲得。
foreach(DictionaryEntry de in ht)
{
Console.WriteLine(“\t{0} \t{1}”,de.Key,de.Value);
}