队列(Queue):代表了一个先进先出的对象集合。
当需要对各项进行先进先出的访问时,则使用队列。
当在列表中添加一项,称为入队,当从列表中移除一项时,称为出队。
定义
一、新实例初始化 System.Collections.Queue 类为空,具有默认初始容量,并使用默认的增长因子。
Queue 标识符 = new Queue();
二、新实例初始化 System.Collections.Queue 类为空,具有指定的初始容量并使用默认的增长因子。
Queue 标识符 = new Queue(指定的初始容量);
三、新实例初始化 System.Collections.Queue 类,该类包含从指定集合中复制的元素具有与所复制的元素数相同的初始容量并使用默认的增长因子。
Queue 标识符 = new Queue(元素被复制的源集合);
四、新实例初始化 System.Collections.Queue 类为空,具有指定的初始容量并使用指定的增长因子。
Queue 标识符 = new Queue(可包含的初始元素数,因子的容量);
Queue 类的一些常用的属性
public virtual int Count { get; }
官方摘要:获取 System.Collections.Queue 中包含的元素数。
返回结果:System.Collections.Queue 中包含的元素数。
简单理解:获取 Queue 中包含的元素个数。
代码示例:
Queue queue = new Queue();
Console.WriteLine(queue.Count);
--->
0
Queue 类的一些常用的方法
public virtual void Enqueue(object obj);
官方摘要:将对象添加到 System.Collections.Queue 的结尾处。
参数说明:
- obj:要添加到 System.Collections.Queue 的对象。 该值可以为 null。
简单理解:将元素添加到结尾。
代码示例:
Queue queue = new Queue();
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Enqueue("cc");
foreach (var item in queue)
{
Console.WriteLine(item);
}
--->
aa
bb
cc
public virtual void Clear();
官方摘要:从 System.Collections.Queue 中移除所有对象。
简单理解:从 Queue 中移除所有的元素。
代码示例:
Queue queue = new Queue();
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Clear();
queue.Enqueue("cc");
foreach (var item in queue)
{
Console.WriteLine(item);
}
--->
cc
public virtual bool Contains(object obj);
官方摘要:确定某元素是否在 System.Collections.Queue 中。
参数说明:
- obj:要在System.Collections.Queue中定位的System.Object。 该值可以为 null。
返回结果:如果在System.Collections.Queue中找到 obj,则为true ;否则为 false。
简单理解:判断某个元素是否在 Queue 中。
代码示例:
Queue queue = new Queue();
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Enqueue("cc");
Console.WriteLine(queue.Contains("bb"));
--->
True
public virtual void CopyTo(Array array, int index);
官方摘要:从指定数组索引开始将 System.Collections.Queue 元素复制到现有一维 System.Array 中。
参数说明:
- array:一维 System.Array,是从 System.Collections.Queue 复制的元素的目标。 System.Array 必须具有从零开始的索引。
- index:array 中从零开始的索引,从此处开始复制。
简单理解:将 Queue 中元素复制到数组。
代码示例:
Queue queue = new Queue();
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Enqueue("cc");
object[] arr = new object[3];
queue.CopyTo(arr,0);
foreach (var item in arr)
{
Console.WriteLine(item);
}
--->
aa
bb
cc
public virtual object Dequeue();
官方摘要:移除并返回位于 System.Collections.Queue 开始处的对象。
返回结果:从 System.Collections.Queue 的开始处移除的对象。
简单理解:移除并返回在 Queue 的开头的对象。
代码示例:
Queue queue = new Queue();
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Enqueue("cc");
Console.WriteLine(queue.Dequeue());
foreach (var item in queue)
{
Console.WriteLine(item);
}
--->
aa
bb
cc
public virtual object Peek();
官方摘要:返回位于 System.Collections.Queue 开始处的对象但不将其移除。
返回结果:位于 System.Collections.Queue 的开头的对象。
简单理解:返回在 Queue 的开头的对象,不移除。
代码示例:
Queue queue = new Queue();
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Enqueue("cc");
Console.WriteLine(queue.Peek());
foreach (var item in queue)
{
Console.WriteLine(item);
}
--->
aa
aa
bb
cc
public virtual object[] ToArray();
官方摘要:将 System.Collections.Queue 元素复制到新数组。
返回结果:新数组,包含从System.Collections.Queue复制的元素。
简单理解:复制 Queue 到一个新的数组中。
代码示例:
Queue queue = new Queue();
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Enqueue("cc");
object[] arr = queue.ToArray();
foreach (var item in arr)
{
Console.WriteLine(item);
}
--->
aa
bb
cc
public virtual void TrimToSize();
官方摘要:将容量设置为 System.Collections.Queue 中元素的实际数目。
简单理解:设置容量为 Queue 中元素的实际个数。
代码示例:
Queue queue = new Queue(5);
queue.Enqueue("aa");
queue.Enqueue("bb");
queue.Enqueue("cc");
queue.TrimToSize();