集合

队列

预计阅读时间2 分钟 11 views

前言

Queue<T> 是一个泛型类,按照“先进先出”(FIFO)的原则排列指定数据类型的元素。例如:

using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个队列
        Queue<string> fruits = new Queue<string>();

        // 向队列中添加 "Apple" 和 "Orange"
        fruits.Enqueue("Apple");
        fruits.Enqueue("Orange");

        // 打印队列中的元素
        foreach (string item in fruits)
        {
            Console.WriteLine(item);
        }
    }
}

输出

Apple
Orange

在这个例子中,fruits 是一个 Queue<string>,包含了字符串元素(”Apple” 和 “Orange”)。接下来,我们将详细了解 Queue<T>

作用

Queue<T> 用于存储遵循“先进先出”原则的元素。这意味着最早添加的元素会最先被移除。这种数据结构适用于需要顺序处理数据的场景。

使用场景

Queue<T> 适用于以下情况:

  1. 任务调度:如任务队列、线程池任务处理。
  2. 排队系统:如打印队列、客户服务队列。
  3. 消息处理:如消息队列系统中的消息传递。

示例

  1. 创建 Queue
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建整数类型的队列
        Queue<int> queue1 = new Queue<int>();

        // 创建字符串类型的队列
        Queue<string> queue2 = new Queue<string>();
    }
}
  1. 使用 Enqueue() 方法
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个队列
        Queue<double> temperatures = new Queue<double>();

        // 向队列中添加温度值
        temperatures.Enqueue(23.5);
        temperatures.Enqueue(18.7);

        // 打印队列中的元素
        foreach (double temp in temperatures)
        {
            Console.WriteLine(temp);
        }
    }
}

输出

23.5
18.7
  1. 使用 Dequeue() 方法
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个队列
        Queue<string> tasks = new Queue<string>();

        // 向队列中添加任务
        tasks.Enqueue("清理桌面");
        tasks.Enqueue("写报告");

        // 从队列开头移除并返回元素
        var removedTask = tasks.Dequeue();

        Console.WriteLine("移除的任务: " + removedTask);
    }
}

输出

移除的任务: 清理桌面
  1. 使用 Peek() 方法
using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个队列
        Queue<string> books = new Queue<string>();

        // 向队列中添加书名
        books.Enqueue("《三国演义》");
        books.Enqueue("《水浒传》");

        // 返回队列开头的元素
        Console.WriteLine("队列开头的元素: " + books.Peek());
    }
}

输出

队列开头的元素: 《三国演义》
  1. 检查队列中是否包含某个元素

我们可以使用 Contains() 方法来检查队列中是否包含某个元素。如果指定的元素存在,则方法返回 True;否则返回 False。例如:

using System;
using System.Collections.Generic;

class Program
{
    public static void Main()
    {
        // 创建一个队列
        Queue<string> planets = new Queue<string>();

        // 向队列中添加行星名称
        planets.Enqueue("地球");
        planets.Enqueue("木星");

        // 检查队列中是否包含 "火星"
        Console.WriteLine(planets.Contains("火星"));

        // 检查队列中是否包含 "木星"
        Console.WriteLine(planets.Contains("木星"));
    }
}

输出

False
True

结语

Queue<T> 提供了一种高效的方式来管理遵循“先进先出”原则的数据集合。通过理解和使用 Queue<T>,可以在需要顺序处理数据的应用场景中提升代码的效率和可读性。

Leave a Comment

分享此文档

队列

或复制链接

内容