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
标签:Console,nums,元素,Queue,Enqueue,WriteLine,基本操作
From: https://blog.csdn.net/weixin_52173250/article/details/143692282