HashSet<T> ক্লাসের Clear() মেথড সেটের সব উপাদান একসাথে সরিয়ে দেয় এবং Count প্রোপার্টি শূন্য করে দেয়। এটি O(n) অপারেশন যেখানে n হলো উপাদান সংখ্যা।
উদাহরণ ১: দুটি HashSet এবং Clear() ব্যবহার
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(string[] args) {
HashSet<string> set1 = new HashSet<string>();
set1.Add("A");
set1.Add("B");
set1.Add("C");
set1.Add("D");
set1.Add("E");
set1.Add("F");
set1.Add("G");
set1.Add("H");
Console.WriteLine("HashSet1 উপাদানসমূহ...");
foreach (string res in set1) {
Console.WriteLine(res);
}
HashSet<string> set2 = new HashSet<string>();
set2.Add("জন");
set2.Add("জ্যাকব");
set2.Add("রায়ান");
set2.Add("টম");
set2.Add("এন্ডি");
set2.Add("টিম");
set2.Add("স্টিভ");
set2.Add("মার্ক");
Console.WriteLine("\nHashSet2 উপাদানসমূহ...");
foreach (string res in set2) {
Console.WriteLine(res);
}
Console.WriteLine("HashSet1 == HashSet2? = " + set1.Equals(set2)); // False
Console.WriteLine("HashSet2-র উপাদান সংখ্যা = " + set2.Count); // ৮
// set2 Clear করা
set2.Clear();
Console.WriteLine("HashSet2-র উপাদান সংখ্যা (আপডেট) = " + set2.Count); // ০
}
}
আউটপুট
HashSet1 উপাদানসমূহ... A B C D E F G H HashSet2 উপাদানসমূহ... জন জ্যাকব রায়ান টম এন্ডি টিম স্টিভ মার্ক HashSet1 == HashSet2? = False HashSet2-র উপাদান সংখ্যা = 8 HashSet2-র উপাদান সংখ্যা (আপডেট) = 0
উদাহরণ ২: সিম্পল HashSet Clear()
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(string[] args) {
HashSet<string> set1 = new HashSet<string>();
set1.Add("A");
set1.Add("B");
set1.Add("C");
set1.Add("D");
set1.Add("E");
set1.Add("F");
set1.Add("G");
set1.Add("H");
Console.WriteLine("HashSet উপাদানসমূহ...");
foreach (string res in set1) {
Console.WriteLine(res);
}
Console.WriteLine("HashSet1-র উপাদান সংখ্যা = " + set1.Count); // ৮
set1.Clear();
Console.WriteLine("HashSet1-র উপাদান সংখ্যা (আপডেট) = " + set1.Count); // ০
}
}
আউটপুট
HashSet উপাদানসমূহ... A B C D E F G H HashSet1-র উপাদান সংখ্যা = 8 HashSet1-র উপাদান সংখ্যা (আপডেট) = 0
HashSet.Clear() - গুরুত্বপূর্ণ বিষয়সমূহ
- সময় জটিলতা: O(n) - সব উপাদান রিলিজ করতে হয়।
- Count: Clear() পর Count = 0 হয়।
- Capacity/Buckets: Clear() করলে বাকেট অ্যারে রিসেট হয় (ডিফল্ট ক্যাপাসিটিতে ফেরত যায়)।
- ইন-প্লেস: মুল HashSet অবজেক্ট মডিফাই হয় (নতুন অবজেক্ট তৈরি হয় না)।
- থ্রেড-সেফ নয়: মাল্টি-থ্রেডেড এনভায়রনমেন্টে লক ব্যবহার করুন।
HashSet-র অন্যান্য উপাদান সরানোর মেথড
| মেথড | বিবরণ | রিটার্ন |
|---|---|---|
Remove(T item) | নির্দিষ্ট একটি উপাদান সরায় | bool (সফল হলে true) |
RemoveWhere(Predicate<T>) | শর্ত মেলা সব উপাদান সরায় | int (সরানো উপাদান সংখ্যা) |
ExceptWith(IEnumerable<T>) | অন্য সংগ্রহের উপাদানগুলো সরায় | void |
IntersectWith(IEnumerable<T>) | শুধু সাধারণ উপাদান রাখে | void |
Clear() | সব উপাদান সরায় | void |
HashSet vs SortedSet vs List - Clear() তুলনা
| বৈশিষ্ট্য | HashSet<T> | SortedSet<T> | List<T> |
|---|---|---|---|
| Clear() সময় | O(n) | O(n) | O(n) |
| অর্ডার | আনঅর্ডার্ড | সর্টেড | ইনসারশন অর্ডার |
| ইউনিক কনস্ট্রেইন্ট | হ্যাঁ | হ্যাঁ | না |
| Capacity আচরণ | রিসেট হয় | ট্রি ক্লিয়ার হয় | অপরিবর্তিত (TrimExcess দরকার) |
টিপ: HashSet পুনরাবৃত্তি করার সময় অর্ডার গ্যারান্টি নেই। নির্দিষ্ট অর্ডার দরকার হলে SortedSet বা List + Sort() ব্যবহার করুন।