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

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

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.