4-4-1.C# 数据容器 - Queue(Queue 的定义、Queue 元素的基本操作、Queue 元素的遍历、Queue 的常用方法、Queue 注意事项)
4-4-1.C# 数据容器 - Queue(Queue 的定义、Queue 元素的基本操作、Queue 元素的遍历、Queue 的常用方法、Queue 注意事项)
·
Queue 概述
-
Queue<T>遵循先进先出的规则存储元素 -
Queue<T>支持泛型,可以指定存储的元素的类型 -
Queue<T>不是线程安全的,在多线程环境中需要谨慎使用
一、Queue 的定义
- 定义 Queue
Queue<int> nums = new Queue<int>();
- 定义 Queue 并填充一些元素
Queue<int> nums = new Queue<int>(new int[] { 1, 2, 3, 4, 5 });
二、Queue 元素的基本操作
1、Queue 元素的添加
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
2、Queue 元素的访问
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine(nums.Dequeue());
# 输出结果
1
3、Queue 元素的查看
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine(nums.Peek());
# 输出结果
1
三、Queue 元素的遍历
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
foreach (int num in nums)
{
Console.WriteLine(num);
}
# 输出结果
1
2
3
四、Queue 的常用方法
1、Queue 元素的删除
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine("删除元素之前");
Console.WriteLine(nums.Count);
nums.Dequeue();
Console.WriteLine("删除元素之后");
Console.WriteLine(nums.Count);
# 输出结果
删除元素之前
3
删除元素之后
2
2、Queue 大小的获取
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine(nums.Count);
# 输出结果
3
3、Queue 元素的清空
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine("清空元素之前");
Console.WriteLine(nums.Count);
nums.Clear();
Console.WriteLine("清空元素之后");
Console.WriteLine(nums.Count);
# 输出结果
清空元素之前
3
清空元素之后
0
五、Queue 注意事项
- Dequeue 方法是对 Queue 元素的访问(删除),它会导致 Queue 的改变,它会返回并移除 Queue 中的第一个元素
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine("调用 Dequeue 方法之前");
Console.WriteLine(nums.Count);
int num = nums.Dequeue();
Console.WriteLine("调用 Dequeue 方法之前");
Console.WriteLine(nums.Count);
# 输出结果
调用 Dequeue 方法之前
3
调用 Dequeue 方法之前
2
- Peek 方法是对 Queue 元素的查看,它不会导致 Queue 的改变,它会返回 Queue 中的第一个元素,但不会移除该元素
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine("调用 Peek 方法之前");
Console.WriteLine(nums.Count);
int num = nums.Peek();
Console.WriteLine("调用 Peek 方法之前");
Console.WriteLine(nums.Count);
# 输出结果
调用 Peek 方法之前
3
调用 Peek 方法之前
3
- Queue 元素的遍历不会导致 Queue 的改变
Queue<int> nums = new Queue<int>();
nums.Enqueue(1);
nums.Enqueue(2);
nums.Enqueue(3);
Console.WriteLine("Queue 元素的遍历之前");
Console.WriteLine(nums.Count);
foreach (int num in nums) { }
Console.WriteLine("Queue 元素的遍历之后");
Console.WriteLine(nums.Count);
# 输出结果
Queue 元素的遍历之前
3
Queue 元素的遍历之后
3
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)