ArrayList ক্লাসের Clear() মেথড লিস্টের সব উপাদান একসাথে সরিয়ে দেয় এবং Count প্রোপার্টি শূন্য করে দেয়। এটি O(n) অপারেশন যেখানে n হলো উপাদান সংখ্যা।
উদাহরণ ১: একাধিক ArrayList এবং Clear() ব্যবহার
using System;
using System.Collections;
public class Demo {
public static void Main(string[] args) {
ArrayList list1 = new ArrayList();
list1.Add("A");
list1.Add("B");
list1.Add("C");
list1.Add("D");
list1.Add("E");
list1.Add("F");
list1.Add("G");
list1.Add("H");
list1.Add("I");
Console.WriteLine("ArrayList1 উপাদানসমূহ...");
foreach (string res in list1) {
Console.WriteLine(res);
}
ArrayList list2 = new ArrayList();
list2.Add("A");
list2.Add("B");
list2.Add("C");
list2.Add("D");
list2.Add("E");
list2.Add("F");
list2.Add("G");
list2.Add("H");
list2.Add("I");
Console.WriteLine("\nArrayList2 উপাদানসমূহ...");
foreach (string res in list2) {
Console.WriteLine(res);
}
// list3 = list2 (রেফারেন্স কপি)
ArrayList list3 = new ArrayList();
list3 = list2;
Console.WriteLine("ArrayList3 == ArrayList2? = " + list3.Equals(list2)); // True (সেম অবজেক্ট)
Console.WriteLine("ArrayList2-র উপাদান সংখ্যা = " + list2.Count); // ৯
// list2 Clear করা
list2.Clear();
Console.WriteLine("ArrayList2-র উপাদান সংখ্যা (আপডেট) = " + list2.Count); // ০
// নোট: list3.Countও ০ হবে কারণ list3 এবং list2 একই অবজেক্ট রেফার করে
}
}
আউটপুট
ArrayList1 উপাদানসমূহ... A B C D E F G H I ArrayList2 উপাদানসমূহ... A B C D E F G H I ArrayList3 == ArrayList2? = True ArrayList2-র উপাদান সংখ্যা = 9 ArrayList2-র উপাদান সংখ্যা (আপডেট) = 0
উদাহরণ ২: সিম্পল ArrayList Clear()
using System;
using System.Collections;
public class Demo {
public static void Main(string[] args) {
ArrayList arrList = new ArrayList();
arrList.Add("One");
arrList.Add("Two");
arrList.Add("Three");
arrList.Add("Four");
arrList.Add("Five");
Console.WriteLine("ArrayList উপাদানসমূহ...");
foreach (string res in arrList) {
Console.WriteLine(res);
}
Console.WriteLine("ArrayList-র উপাদান সংখ্যা = " + arrList.Count); // ৫
arrList.Clear();
Console.WriteLine("ArrayList-র উপাদান সংখ্যা (আপডেট) = " + arrList.Count); // ০
}
}
আউটপুট
ArrayList উপাদানসমূহ... One Two Three Four Five ArrayList-র উপাদান সংখ্যা = 5 ArrayList-র উপাদান সংখ্যা (আপডেট) = 0
ArrayList.Clear() - গুরুত্বপূর্ণ বিষয়সমূহ
- সময় জটিলতা: O(n) - সব উপাদান রিলিজ করতে হয়।
- Count: Clear() পর Count = 0 হয়।
- Capacity: Clear() করলে Capacity অপরিবর্তিত থাকে (মেমরি রিজার্ভড থাকে)।
- Capacity রিসেট:
TrimToSize()কল করলে Capacity = Count (=0) হয়। - রেফারেন্স সেম্যান্টিক্স:
list3 = list2হলে দুটি ভেরিয়েবল একই অবজেক্ট রেফার করে, একটো Clear করলে অন্যটিও খালি হয়।
ArrayList vs List<T> - Clear() তুলনা
| বৈশিষ্ট্য | ArrayList.Clear() | List<T>.Clear() |
|---|---|---|
| টাইপ সেফটি | নন-জেনেরিক (object) | জেনেরিক (টাইপ-সেফ) |
| বক্সিং/আনবক্সিং | হ্যাঁ (value type-এর জন্য) | না |
| পারফরম্যান্স | স্লোওয়ার | ফাস্টার |
| Capacity আচরণ | অপরিবর্তিত | অপরিবর্তিত |
আধুনিক বিকল্প: List<T> ব্যবহার করুন
// সুপারিশকৃত আধুনিক পদ্ধতি
List<string> list = new List<string> { "One", "Two", "Three", "Four", "Five" };
list.Clear(); // একই আচরণ, কিন্তু টাইপ-সেফ এবং ফাস্ট
Console.WriteLine(list.Count); // 0
সুপারিশ: নতুন প্রজেক্টে ArrayList এর পরিবর্তে List<T> ব্যবহার করুন। ArrayList লিগ্যাসি কোড এবং .NET Framework 1.x কম্প্যাটিবিলিটির জন্য।