Giới thiệu
Phương thức Clear() của Queue<T> xóa tất cả phần tử khỏi hàng đợi, đưa Count về 0. Capacity (dung lượng nội bộ) không thay đổi, bộ nhớ vẫn được giữ để tái sử dụng.
Cú pháp
public void Clear();
Ví dụ 1
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);
queue.Enqueue(400);
queue.Enqueue(500);
queue.Enqueue(600);
queue.Enqueue(700);
queue.Enqueue(800);
queue.Enqueue(900);
queue.Enqueue(1000);
Console.WriteLine("Queue...");
foreach (int i in queue)
{
Console.WriteLine(i);
}
Console.WriteLine("Số lượng phần tử trong Queue = " + queue.Count);
queue.Clear();
Console.WriteLine("Số lượng phần tử trong Queue [Sau Clear] = " + queue.Count);
}
}
Kết quả
Queue... 100 200 300 400 500 600 700 800 900 1000 Số lượng phần tử trong Queue = 10 Số lượng phần tử trong Queue [Sau Clear] = 0
Ví dụ 2 - Clear sau khi thêm thêm phần tử
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.WriteLine("Queue...");
foreach (int i in queue)
{
Console.WriteLine(i);
}
Console.WriteLine("Số lượng phần tử = " + queue.Count);
queue.Enqueue(800);
queue.Enqueue(900);
queue.Enqueue(1000);
Console.WriteLine("Số lượng phần tử [Sau thêm] = " + queue.Count);
queue.Clear();
Console.WriteLine("Số lượng phần tử [Sau Clear] = " + queue.Count);
}
}
Kết quả
Queue... 100 200 300 Số lượng phần tử = 3 Số lượng phần tử [Sau thêm] = 6 Số lượng phần tử [Sau Clear] = 0
Lưu ý quan trọng
Clear()chạy O(n) vì phải đặt các tham chiếu về null (giúp GC).- Capacity không giảm sau Clear. Để giải phóng bộ nhớ, tạo Queue mới:
queue = new Queue<T>(); TrimExcess()không có sẵn cho Queue (khác với List).- Thread-safe: Queue không thread-safe. Dùng
ConcurrentQueue<T>cho đa luồng.