C#的Queue 类使用说明

一:Queue 类简单说明

1)表示对象的先进先出集合
2)当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。

二:Queue 类的构造函数

构造函数构造函数说明
Hashtable()使用默认的初始容量、加载因子、哈希代码提供程序和比较器来初始化 Hashtable 类的新的空实例。
Hashtable(IDictionary)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用默认的加载因子、哈希代码提供程序和比较器。
Hashtable(IDictionary, IEqualityComparer)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用默认加载因子和指定的 IEqualityComparer 对象。
Hashtable(IDictionary, Single)通过将指定字典中的元素复制到新的 Hashtable 对象中,初始化 Hashtable 类的一个新实例。 新 Hashtable 对象的初始容量等于复制的元素数,并且使用指定的加载因子、默认哈希代码提供程序和默认比较器。

三:Queue 类的属性

属性属性说明
Count获取 Queue 中包含的元素数。
IsSynchronized获取一个值,该值指示是否同步对 Queue 的访问(线程安全)。
SyncRoot获取可用于同步对 Queue 的访问的对象。

四:Queue 类的方法

属性属性说明
Clear()从 Queue 中移除所有对象。
Clone()创建 Queue 的浅表副本。
Contains(Object) 确定某元素是否在 Queue 中。
Enqueue() 将对象添加到 Queue 的结尾处。
Dequeue()移除并返回位于 Queue 开始处的对象(从队列中,取出排在第一位的元素。)
CopyTo(Array, Int32)从指定数组索引开始将 Queue 元素复制到现有一维 Array 中。
Equals(Object)确定指定对象是否等于当前对象。
GetEnumerator()返回循环访问 Queue 的枚举数。
GetHashCode()作为默认哈希函数。
GetType()获取当前实例的 Type。
MemberwiseClone()创建当前 Object 的浅表副本。
Peek()返回位于 Queue 开始处的对象但不将其移除。
Synchronized(Queue)返回将包装原始队列并且是线程安全的新的 Queue。
ToArray() 将 Queue 元素复制到新数组。
ToString()返回表示当前对象的字符串。
TrimToSize()将容量设置为 Queue 中元素的实际数目。

1: Queue.Enqueue()和Dequeue() 方法使用举例

1)作用:Enqueue将对象添加到 Queue 的结尾处。Dequeue则是从 Queue 的开始处移除的对象。
2)语法:

public virtual void Enqueue (object obj);
public virtual object Dequeue ();

3)使用举例:

// 创建并初始化源队列.
Queue mySourceQ = new Queue();
mySourceQ.Enqueue("one");
mySourceQ.Enqueue("two");
mySourceQ.Enqueue("three");
mySourceQ.Enqueue("four");

// 显示队列.
Console.Write("Queue values:");
foreach (Object obj in mySourceQ)
{
    Console.Write("    {0}", obj);
}
    
// 从队列中删除元素.
Console.WriteLine("\r\n(Dequeue)\t{0}", mySourceQ.Dequeue());

// 显示队列.
Console.Write("Queue values:");
foreach (Object obj in mySourceQ)
{
    Console.Write("    {0}", obj);
}

4)运行结果:

Queue values: one two three four
(Dequeue) one
Queue values: two three four

2: Queue.CopyTo(Array, Int32) 方法使用举例

1)作用:将 Queue 元素复制到指定数组索引开始的一维 Array 中。
2)语法:

public virtual void CopyTo (Array array, int index);

3)使用举例:

// 创建并初始化源队列.
Queue mySourceQ = new Queue();
mySourceQ.Enqueue("one");
mySourceQ.Enqueue("two");
mySourceQ.Enqueue("three");
mySourceQ.Enqueue("four");
// 创建并初始化一维目标数组.

Array myTargetArray = Array.CreateInstance(typeof(string), 15);
myTargetArray.SetValue("Good", 0);
myTargetArray.SetValue("bad", 1);
myTargetArray.SetValue("yes", 2);
myTargetArray.SetValue("no", 3);

// 将整个源队列复制到目标数组,从索引2开始.
mySourceQ.CopyTo(myTargetArray, 2);
foreach (Object myObj in myTargetArray)
{
    Console.Write("{0}{1}", ' ', myObj);
}

4)运行结果:

Good bad one two three four

3:Queue.ToArray 方法使用举例

1)作用:将 Queue 元素复制到新数组。
2)语法:

public virtual object[] ToArray ();

3)使用举例:

// 创建并初始化源队列.
Queue mySourceQ = new Queue();
mySourceQ.Enqueue("one");
mySourceQ.Enqueue("two");
mySourceQ.Enqueue("three");
mySourceQ.Enqueue("four");

// 将整个源队列,复制到新的标准数组中。
Object[] myStandardArray = mySourceQ.ToArray();

foreach (Object myObj in myStandardArray)
{
    Console.Write("{0}{1}", ' ', myObj);
}

4)运行结果:

one two three four
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值