Day 20 泛型集合類別(二)
泛型集合類別
接續昨天的話題我們繼續。
Stack<T>
堆疊類型,設計成後入先出的集合。
初始化上圖的 Stack 我們先
1 | var stack = new Stack<string> (); |
由於 Stack 沒有 Add 方法,所以不能像前兩個一樣直接賦值。
上方表示新增元素 Push ()
1 | stack.Push ("Lulu"); |
下方表示取出元素 Pop ()
1 | stack.Pop (); |
根據圖片我們可以更加了解如何使用 Stack,而上述兩種方法都會對 Stack 的元素產生影響,如果要查詢元素時,我們可以使用 Peek () 來確認最上面的元素,也可以使用 Contains () 來確認適合有符合的元素,當然要拿元素出來,還是要根據規則一個一個吐出。
Queue<T>
佇列類型,設計成先入先出的集合。
一樣初始化上圖的 Queue
1 | var queue = new Queue<string> (); |
Queue 一樣沒有 Add 方法。
上方表示新增元素 Enqueue ()
1 | queue.Enqueue ("Lulu"); |
下方表示取出元素 Dequeue ()
1 | queue.Dequeue (); |
上述兩種方法一樣都會對 Queue 的元素產生影響,查詢的方法與 Stack 一樣。
一些小結論
簡單介紹四個常用的集合類別,這邊簡單的說一下個人的使用時機,有明確的對照行為,並且要求 Key 值不能重複時,可以使用 Dictionary。而今天介紹的這兩個則是以需求為主,除非內容需以加入順序排列,否則一般不會考慮。不知道用啥就是使用 List。當然只是個人感想而已。
雖然沒有介紹裝箱拆箱,但因為裝箱拆箱的原因,在撰寫程式碼時,建議優先選擇泛型版本,有些集合允許非泛型版本(存放於System.Collections
),在編譯時也能強制型別檢查,所以泛型版本可以說是比較快也比較安全。