Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức Queue.Contains() trong C#

Giới thiệu

Phương thức Contains(T item) của Queue<T> kiểm tra xem hàng đợi có chứa một phần tử cụ thể hay không. Trả về true nếu tìm thấy, false nếu không. Tìm kiếm tuyến tính O(n).

Cú pháp

public virtual bool Contains(T item);

Ví dụ 1

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Queue queue = new Queue();
        queue.Enqueue("Gary");
        queue.Enqueue("Jack");
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");
        queue.Enqueue("Mark");
        queue.Enqueue("Jack"); // Trùng lặp
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");

        Console.Write("Số lượng phần tử = ");
        Console.WriteLine(queue.Count);

        Console.WriteLine("Queue có chứa 'Jack'? = " + queue.Contains("Jack"));

        queue.Clear();
        Console.Write("Số lượng phần tử (sau Clear) = ");
        Console.WriteLine(queue.Count);
    }
}

Kết quả

Số lượng phần tử = 8
Queue có chứa 'Jack'? = True
Số lượng phần tử (sau Clear) = 0

Ví dụ 2

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Queue queue = new Queue();
        queue.Enqueue(100);
        queue.Enqueue(200);
        queue.Enqueue(300);

        Console.Write("Số lượng phần tử = ");
        Console.WriteLine(queue.Count);

        Console.WriteLine("Queue có chứa 500? = " + queue.Contains(500));

        queue.Clear();
        Console.Write("Số lượng phần tử (sau Clear) = ");
        Console.WriteLine(queue.Count);
    }
}

Kết quả

Số lượng phần tử = 3
Queue có chứa 500? = False
Số lượng phần tử (sau Clear) = 0

Lưu ý quan trọng

  • Queue cho phép phần tử trùng lặp.
  • Contains() duyệt từ front (đầu) đến rear (cuối), O(n).
  • Clear() xóa tất cả phần tử, đưa Count về 0.
  • Queue không hỗ trợ truy cập ngẫu nhiên, chỉ Enqueue (thêm cuối), Dequeue (lấy đầu), Peek (xem đầu).
  • Để tìm kiếm nhanh, cân nhắc HashSet<T> song song hoặc dùng List<T> nếu không cần FIFO.