集合

 

數組的缺點:數組初始化後,容量固定

數組存儲數據類型固定

 

集合提供了一種靈活的處理方法,與數組不同,

集合處理對象組可以根據程序需要動態增長

或收縮存儲的容量

 

對於某些集合,還可以放入該集合任何對象

分配一個鍵 ,以便通過鍵快速訪問和檢索對象

 

集合是類 因此必須在使用前進行初始化,才能向集合添加元素

泛型集合(泛型類) 非泛型集合

 

使用非泛型集合需要引入命名空間:

system.collection

泛型集合

system.collection.generic

非泛型集合

Arraylist: 大小可以根據需求可調整的數組列表類該類中儲存的元素默認object

 

Hashtable:根據鍵來存取對應的值 把鍵和值都是object類型

Queue: 隊列集合 表示集合中的元素先進先出FIFO

Stack:棧 表示集合中的元素後進先出LIFO

 

 

 

 

Arraylist: 的使用

ArrayList arrayList = new ArrayList();

arrayList.Add(1234);

arrayList.Add(2.3f);

arrayList.Add("按時打卡了時間啊");

在指定下標插入元素 不會移除元素

arrayList.Insert(0, "baobao");

移除指定下標

arrayList.RemoveAt(2);

 

翻轉結合

arrayList.Reverse();

獲取集合長度

Console.WriteLine("{0}", arrayList.Count);

Console.WriteLine(arrayList[1]);

foreach (var item in arrayList)

{

Console.WriteLine(item);

}

Console.WriteLine(" ");

arrlist:1,支持靈活改變儲存空間大小

2,可以靈活插入,刪除,訪問元素

3,不是強類型 速度比數組要慢*/

 

Console.WriteLine("_______________________________________");

Stack stack = new Stack();

元素入棧,將元素插入集合中(插入頂部)

stack.Push("挖坑");

stack.Push("埋點土");

stack.Push("數個一二三四五");

出棧.將棧頂中的元素返回並移除

Console.WriteLine(stack.Pop());

出棧,將棧頂的元素返回但不移除

Console.WriteLine(stack.Peek());

清除棧中所有元素

stack.Clear();

將棧中所有元素轉存某個數組

object[] arr = stack.ToArray();

遍歷

foreach (var item in stack)

{

Console.WriteLine(item);

}

棧:後進先出的數據結構 2,隨着向棧中增加元素,棧空間會根據

內容重新分配空間

3,棧中允許存放null作爲有效值 棧中允許存放重複值*/

隊列FIFO

Console.WriteLine("_____________________________________________-");

Queue queue = new Queue();

入隊列,將元素添加到隊列

queue.Enqueue("白日依山盡");

queue.Enqueue("黃河入海流");

queue.Enqueue("舉頭望明月");

queue.Enqueue("低頭思故鄉");

出隊列 dequeue出隊列並移除

Console.WriteLine(queue.Dequeue());

出隊列 不移除

Console.WriteLine(queue.Peek());

清除隊列

queue.Clear();

foreach (var item in queue)

{

Console.WriteLine(item);

}

判斷隊列是否存在某個元素

if (queue.Contains("舉頭望明月"))

{

Console.WriteLine("我是一隻小鴨子");

}

獲取個數

Console.WriteLine(queue.Count);

隊列轉成數組

object[] ojbarr = queue.ToArray();

Console.WriteLine("_____________________________________________________");

1,queue: 是一種先進先出的數據結構

2,隨着忘隊列中添加元素,隊列存儲空間動態調整大小

3,queue也接受null作爲有效值,棧中允許存放重複值

4,在AI尋路算法中經常會用到queue

二,泛型集合

1,字典:dictionary:用來儲存有一一對應關係的數據的集合

使用key-value(鍵值對)來儲存數據

字典中key是惟一的,value可以是變量,也可以是對象,

字典是一個泛型集合(泛型類),實例化的時候必定定key和value的類型

*/

trygetvalue通過指定的key來獲取相應的value,如果能獲取到。

或者返回true,並將對應的value放入out參數中

3,訪問字典中的value,可以通過字典對象【key】

remove 移除字典中的字符 移除的是字典中的鍵值對

判斷是否出現指定字符key containkey

判斷字典中是否有指定的value containvalue

獲取字典中鍵值對的個數

Console.WriteLine(Dic.count);

獲取字典所有的key

dic.keys: 獲取所有的key

Dictionary<string, int>.keycollection = DictionaryBase.keys;

foreach (var item in collection)

{

Console.WriteLine(item);

}

獲取所有value

Dictionary<string,int>.valuecollection values=DictionaryBase.values'

foreach'

10,遍歷字典

foreach (var item in Dic)

{

Console.WriteLine(item.key+":"+item.value);

}

 

 

Console.ReadKey();

}

}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章