C# 系統集合泛型(System.Collections.Generic) Queue, Stack
阿新 • • 發佈:2018-12-23
C# 在系統集合泛型(System.Collections.Generic) 還包含 佇列(Queue)及堆疊(Stack)
這裡先簡單總結一下兩者的差異
佇列(Queue) 屬於先進先出(FIFO)的集合,例如: 一群人在排隊等公車,先來的就可以先上車。
堆疊(Stack) 屬於後進先出 (LIFO)的集合,例如: 將大箱子放入貨車櫃,最後放進去的,到時會最先取出來; 將子彈裝進彈匣,最後裝進去的會先擊發。
接下來,兩者說明如下:
佇列(Queue)
佇列(Queue) 屬於先進先出(FIFO)的集合
例如: 一群人在排隊等公車,先來的就可以先上車。
常用的 Queue 方法與屬性
(假設,變數名稱為 myQueue)
方法/屬性 | 說明 | 用法 |
---|---|---|
Enqueue | 增加一個元素 | myQueue.Enqueue(值) |
Dequeue | 取出並移除第一個元素 | myQueue.Dequeue() |
Count | 取得元素總數 | myQueue.Count |
Peek | 取出第一個元素,但不移除 | myQueue.Peek() |
Clear | 移除所有元素 | myQueue.Clear() |
ToArray | 將 Queue 專案建立新的陣列 | myQueue.ToArray() |
TrimExcess() | 如果元素已經少於一開始的90%,就調整 Queue 容量大小 | myQueue.TrimExcess() |
(完整Queue方法/屬性可以參考官方檔案
範例:
堆疊(Stack)
堆疊(Stack) 屬於後進先出(LIFO)的集合
例如: 將大箱子放入貨車櫃,最後放進去的,到時會最先取出來; 將子彈裝進彈匣,最後裝進去的會先擊發。
常用的 Stack 方法與屬性
(假設,變數名稱為 mydemoStack)
方法/屬性 | 說明 | 用法 |
---|---|---|
Push | 頂端(最後面)增加一個元素 | mydemoStack.Push(值) |
Pop | 取出頂端(最後面)第一個元素,並移除 | mydemoStack.Pop() |
Count | 取得元素總數 | mydemoStack.Count |
Peek | 取出頂端(最後面)第一個元素,但不移除 | mydemoStack.Peek() |
Clear | 移除所有元素 | mydemoStack.Clear() |
ToArray | 將 Stack 專案建立新的陣列 | mydemoStack.ToArray() |
TrimExcess() | 如果元素已經少於一開始的90%,就調整 Stack 容量大小 | mydemoStack.TrimExcess() |
(完整Stack方法/屬性可以參考官方檔案
範例:
如果你喜歡我們的文章內容,請在這裡按個讚
Tweet