C#隊(duì)列Queue用法實(shí)例分析
本文實(shí)例分析了C#隊(duì)列Queue用法。分享給大家供大家參考。具體分析如下:
隊(duì)列(Queue)在程序設(shè)計(jì)中扮演著重要的角色,因?yàn)樗梢阅M隊(duì)列的數(shù)據(jù)操作。例如,排隊(duì)買(mǎi)票就是一個(gè)隊(duì)列操作,后來(lái)的人排在后面,先來(lái)的人排在前面,并且買(mǎi)票請(qǐng)求先被處理。為了模擬隊(duì)列的操作,Queue在ArrayList的基礎(chǔ)上加入了以下限制
1.元素采用先入先出機(jī)制(FIFO,F(xiàn)irst In First Out),即先進(jìn)入隊(duì)列的元素必須先離開(kāi)隊(duì)列。最先進(jìn)入的元素稱(chēng)為隊(duì)頭元素。
元素只能被添加到隊(duì)尾(稱(chēng)為入隊(duì)),不允許在中間的某個(gè)位置插入。也就是說(shuō),不支持ArrayList中的Insert方法
2.只有隊(duì)頭的元素才能被刪除(稱(chēng)為出隊(duì)),不允許直接對(duì)隊(duì)列中的非隊(duì)頭元素進(jìn)行刪除,從而保證FIFO機(jī)制。也就是說(shuō),不支持ArrayList中的Remove方法。
3.不允許直接對(duì)隊(duì)列中非隊(duì)頭元素進(jìn)行訪問(wèn)。也就是說(shuō),不支持ArrayList中的索引訪問(wèn),只允許遍歷訪問(wèn)
注意:
Queue.Enqueue (object):向Queue中入隊(duì)一個(gè)對(duì)象元素。
Queue.Dequeue ():從Queue中出隊(duì)一個(gè)對(duì)象元素,并將此元素返回。
舉例:
private void button_測(cè)試Queue_Click(object sender, EventArgs e)
{
string[] cars = new string[]{"寶馬","奔馳","奧迪","東風(fēng)","勞斯萊斯"};
Console.WriteLine("開(kāi)始入隊(duì)列");
Queue<string> que = new Queue<string>();
foreach (string str in cars)
{
que.Enqueue(str);
Console.WriteLine("入隊(duì)列-{0}",str);
}
Console.WriteLine();
//打印隊(duì)列
PrintQueue(que);
Console.WriteLine();
Console.WriteLine("開(kāi)始出隊(duì)列");
while (que.Count > 0)
{
string str = que.Dequeue();
Console.WriteLine("出隊(duì)列-{0}", str);
}
}
private void PrintQueue(Queue<string> list)
{
Console.WriteLine("開(kāi)始打印隊(duì)列");
foreach (string str in list)
{
Console.WriteLine(str);
}
}
運(yùn)行結(jié)果如下圖所示:

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
淺拷貝和深拷貝深入理解(shallow copy VS deep copy)
淺拷貝和深拷貝深入理解(shallow copy VS deep copy) 本文重點(diǎn)討論引用類(lèi)型變量的拷貝機(jī)制和實(shí)現(xiàn)2014-01-01
Unity InputFiled TMP屬性和各種監(jiān)聽(tīng)示例詳解
這篇文章主要為大家介紹了Unity InputFiled TMP屬性和各種監(jiān)聽(tīng)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
C#使用XmlDocument或XDocument創(chuàng)建xml文件
這篇文章主要為大家詳細(xì)介紹了C#使用XmlDocument或XDocument創(chuàng)建xml文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
C# 繪制統(tǒng)計(jì)圖大全(柱狀圖, 折線圖, 扇形圖)
本篇文章介紹了C# 繪制統(tǒng)計(jì)圖大全,其中包括狀圖, 折線圖, 扇形圖,有需要的同學(xué)可以了解一下。2016-11-11

