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ùngList<T>nếu không cần FIFO.