在C#中使用Queue

原文地址: http://www.dingos.cn/index.php?topic=1686.0

介绍
Queue类执行将放在在Queue中的对象采用先进先出的数据结构。
对象从一端插入到队列中从另一端移除。对象的顺序进程使用Queue

Queue接口
Queue类实现了三个主要集合接口:ICollection、IEnumerable和ICloneable。

Queue的重要方法
Queue类常用的方法有:

  • Enqueue - 将对象添加到 Queue 的结尾处。
  • Dequeue - 移除并返回位于 Queue 开始处的对象。
  • Peek - 返回位于 Queue 开始处的对象但不将其移除。
  • Clear - 从 Queue 中移除所有对象。
  • Contains - 确定某元素是否在 Queue 中。

试图对空对列执行Dequeue和Peek方法会抛出InvalidOperationExceptio

n异常。

可以通过传递大小使用Queue构造方法指定Queue的初始大小
Queue queue = new Queue(10); // 初始大小为10

可以为Queue对象指定增长因子。Queue有一个构造方法允许指定Queue的初始大小也可以指定增长因子。例如:
Queue  myQueue = new Queue(10, 4.0);

默认的增长因子是2.0并且正常因子最大值是10.0。

总结
.NET framework包括许多集合类型的变量,包括Stack、HashTable等。
C# ,`PriorityQueue` 是 .NET Framework 的一个内置数据结构,它是一种基于优先级的队列,其元素的添加顺序取决于它们的优先级。当你需要按照特定的顺序处理任务或元素时,`PriorityQueue` 可以非常有用,例如在调度、事件处理或其他需要按优先级处理任务的场景。 下面是 `PriorityQueue` 在 C# 的基本用法: 1. 创建 `PriorityQueue`:你可以使用泛型指定要存储的数据类型和默认的比较器(如果需要自定义排序)。 ```csharp PriorityQueue<int> queue = new PriorityQueue<int>(); ``` 2. 添加元素:使用 `Enqueue` 方法添加元素,`PriorityQueue` 会自动根据元素的默认或自定义比较器进行排序。 ```csharp queue.Enqueue(10); queue.Enqueue(5); queue.Enqueue(15); ``` 3. 删除并获取最高优先级元素:使用 `Peek` 方法查看当前队列的最高优先级元素,但不删除它;`Dequeue` 方法则用于获取并移除最高优先级的元素。 ```csharp int highestPriority = queue.Peek(); // 返回 5 int removedElement = queue.Dequeue(); // 返回 5,现在队列里只剩 10 和 15 ``` 4. 自定义比较器:如果你想要用自定义的比较逻辑,可以在创建 `PriorityQueue` 时提供一个实现了 `IComparer<T>` 接口的类实例。 ```csharp class CustomComparator : IComparer<int> { // 实现 Compare 方法 } PriorityQueue<int, CustomComparator> customQueue = new PriorityQueue<int, CustomComparator>(new CustomComparator()); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜晚回家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值