泛型类:Queue

  1. /* 泛型类:Queue
  2. * 命名空间:System.Collections.Generic
  3. * 描述:表示对象的先进先出集合。
  4. * 类型参数:    T    --指定队列中元素的类型
  5. * 备注:
  6. * 队列容器中的项,只能从先进去的开始删除,不能无规则删除容器队列中的项,比如,不能直接删除第2个,或最后一个项,
  7. * 要删除第2项,只能先删除第一个项,然后才能删除原来的第2项,当前的第一项.(只能删除第一项!!!)
  8. * Queue在接收顺序存储消息方面非常游泳,以便于进行顺序处理.存储在Queue中的对象在一端插入,从另一端移除
  9. * Queue的容量是指Queue可以保存的元素数.默认初始容量为8.
  10. * 当向Queue添加元素时,将通过重新分配内部数组,根据需要自动增大容量,可以通过TrimExcess来减少容量.
  11. * Queue接受空引用作为引用类型的有效值并允许有重复的元素.
  12. */ 
  13. //示例如下: 
  14. //示例1 
  15. //创建一个具有默认容量的字符串队列,并使用Enqueue方法对字符串进行排队进入. 
  16. //枚举队列元素,这不会更改队列的状态. 
  17. //使用Dequeue方法使第一个字符串出列,使用Peek方法查找队列中的下一项,然后用Dequeue方法使其出列. 
  18. //使用ToArray方法创建一个数组对象并将队列元素复制到该数组. 
  19. //创建一个大小是队列大小两倍的数组,并使用CopyTo方法从数组中开始复制数组元素. 
  20. //使用Contains方法显示字符串"four"在第一队列副本中,然后使用Clear方法清除此副本并由Count属性显示该队列为空. 
  21. using System; 
  22. using System.Collections.Generic; 
  23. class Program 
  24.     static void Main(string[] args) 
  25.     { 
  26.         //(1)创建队列容器对象,并依次排队进入此容器 
  27.         Queue<string> numbers = new Queue<string>(); 
  28.         numbers.Enqueue("one"); 
  29.         numbers.Enqueue("two"); 
  30.         numbers.Enqueue("three"); 
  31.         numbers.Enqueue("four"); 
  32.         numbers.Enqueue("five"); 
  33.         //(2)枚举队列元素 
  34.         foreach (string s in numbers) 
  35.         { 
  36.             Console.WriteLine(s); 
  37.         } 
  38.         //(3)使用Dequeue方法/返回队列头对象并移除,使用Peek方法返回队列头对象但不移除,然后用Dequeue方法使其出列 
  39.         Console.WriteLine("\nDequeuing '{0}'", numbers.Dequeue());//返回队列头对象并移除 
  40.         Console.WriteLine("Peek at next item to dequene:{0}", numbers.Peek());//返回队列头对象但不移除 
  41.         Console.WriteLine("Dequeuing '{0}'", numbers.Dequeue()); 
  42.         //(4)使用ToArray方法创建一个数组对象并将队列元素复制到该数组. 
  43.         string[] strArray = numbers.ToArray(); 
  44.         Console.WriteLine("\n数组对象:"); 
  45.         foreach (string s in strArray) 
  46.         { 
  47.             Console.WriteLine(s); 
  48.         } 
  49.         //(5)由数组对象创建队列容器 
  50.         Queue<string> queueCopy = new Queue<string>(strArray); 
  51.         Console.WriteLine("\n由数组对象\"strArray\"创建的队列容器:"); 
  52.         foreach (string s in queueCopy) 
  53.         { 
  54.             Console.WriteLine(s); 
  55.         } 
  56.         //(5)创建一个大小是队列大小两倍的数组,并使用CopyTo方法从数组中开始复制数组元素. 
  57.         string[] Array2 = new string[numbers.Count * 2]; 
  58.         numbers.CopyTo(Array2, 0);        //从队列容器索引0开始,将全部的内容都复制到数组对象中 
  59.         
  60.         Queue<string> queueCopy2 = new Queue<string>(Array2); 
  61.         Console.WriteLine("\n由数组对象\"Array2\"创建的队列容器:"); 
  62.         foreach (string s in queueCopy2)        
  63.         { 
  64.             Console.WriteLine(s); 
  65.         } 
  66.         //(6)使用Contains方法显示字符串"four"在第一队列副本中,然后使用Clear方法清除此副本并由Count属性显示该队列为空. 
  67.         Console.WriteLine("\nqueueCopy.Contains(\"four\")={0}",queueCopy.Contains("four"));//确定某元素是否在队列中 
  68.         Console.WriteLine("queueCopy清除前元素个数:" + queueCopy.Count); 
  69.         queueCopy.Clear(); 
  70.         Console.WriteLine("queueCopy清除后元素个数:"+queueCopy.Count); 
  71.         Console.Read(); 
  72.     } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值