Queue<T> ক্লাসের Clear() মেথড কিউ-র সব উপাদান একসাথে সরিয়ে দেয় এবং কাউন্ট শূন্য করে দেয়। এটি O(n) অপারেশন যেখানে n হলো উপাদান সংখ্যা।
উদাহরণ ১: স্ট্রিং Queue থেকে সব উপাদান সরানো
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue<string> queue = new Queue<string>();
queue.Enqueue("গেরি");
queue.Enqueue("জ্যাক");
queue.Enqueue("রায়ান");
queue.Enqueue("কেভিন");
queue.Enqueue("মার্ক");
queue.Enqueue("জ্যাক"); // ডুপ্লিকেট
queue.Enqueue("রায়ান"); // ডুপ্লিকেট
queue.Enqueue("কেভিন"); // ডুপ্লিকেট
Console.Write("উপাদান সংখ্যা = ");
Console.WriteLine(queue.Count); // ৮
// সব উপাদান সরানো
queue.Clear();
Console.Write("আপডেট হওয়া উপাদান সংখ্যা = ");
Console.WriteLine(queue.Count); // ০
}
}
আউটপুট
উপাদান সংখ্যা = 8 আপডেট হওয়া উপাদান সংখ্যা = 0
উদাহরণ ২: ছোট Queue এবং Clear()
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Queue<string> queue = new Queue<string>();
queue.Enqueue("A");
queue.Enqueue("B");
queue.Enqueue("C");
queue.Enqueue("D");
queue.Enqueue("E");
Console.WriteLine("উপাদান সংখ্যা = " + queue.Count); // ৫
queue.Clear();
Console.Write("আপডেট হওয়া উপাদান সংখ্যা = " + queue.Count); // ০
}
}
আউটপুট
উপাদান সংখ্যা = 5 আপডেট হওয়া উপাদান সংখ্যা = 0
Queue-র অন্যান্য গুরুত্বপূর্ণ মেথড
| মেথড | বিবরণ |
|---|---|
Enqueue(T item) | কিউ-র শেষে উপাদান যোগ করে (O(1))। |
Dequeue() | কিউ-র সামনে থেকে উপাদান সরিয়ে রিটার্ন করে (O(1))। খালি কিউ-তে কল করলে InvalidOperationException। |
Peek() | সামনের উপাদান রিটার্ন করে কিন্তু সরায় না। খালি কিউ-তে InvalidOperationException। |
Contains(T item) | উপাদানটি কিউ-তে আছে কিনা চেক করে (O(n))। |
ToArray() | কিউ-র কপি হিসেবে অ্যারে রিটার্ন করে। |
TrimExcess() | ক্ষমতা (capacity) কাউন্টের সমান করে কমিয়ে দেয়। |
গুরুত্বপূর্ণ নোট
Clear()কল করার পর কিউ খালি হয়, কিন্তু ক্যাপাসিটি (capacity) অপরিবর্তিত থাকে।- ক্যাপাসিটিও রিসেট করতে চাইলে
TrimExcess()কল করুন বা নতুন Queue তৈরি করুন। Queue<T>জেনেরিক ক্লাস, টাইপ সেফটি নিশ্চিত করে।- নন-জেনেরিক
Queue(System.Collections) লিগ্যাসি কোডের জন্য, নতুন কোডে বাদ দিন।
ব্যবহার ক্ষেত্র (Use Cases)
- টাস্ক শিডিউলিং (FIFO - First In First Out)
- ব্রেডথ-ফার্স্ট সার্চ (BFS) অ্যালগরিদম
- প্রিন্টার কিউ, মেসেজ কিউ, রিকোয়েস্ট হ্যান্ডলিং
- আনডো/রিডো ফাংশনালিটি (স্ট্যাকের সাথে মিলিয়ে)