ArrayList এবং LinkedList দুটোই List ইন্টারফেস ইমপ্লিমেন্ট করে, যা remove() মেথডের দুটি ভেরিয়েন্ট প্রদান করে।
১. E remove(int index)
নির্দিষ্ট ইনডেক্সের এলিমেন্ট রিমুভ করে এবং রিমুভ করা এলিমেন্টটি রিটার্ন করে। ইনডেক্স আউট অফ বাউন্ড হলে IndexOutOfBoundsException নিক্ষেপ করে।
উদাহরণ
import java.util.ArrayList;
public class RemoveExample {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("JavaFX");
arrayList.add("Java");
arrayList.add("WebGL");
arrayList.add("OpenCV");
System.out.println("Original: " + arrayList);
System.out.println("Removed: " + arrayList.remove(0)); // JavaFX
System.out.println("Removed: " + arrayList.remove(2)); // OpenCV (ইনডেক্স শিফট হওয়ায়)
System.out.println("After removal: " + arrayList); // [Java, WebGL]
}
}
আউটপুট
Original: [JavaFX, Java, WebGL, OpenCV] Removed: JavaFX Removed: OpenCV After removal: [Java, WebGL]
২. boolean remove(Object o)
প্রথমbaar মিলে যাওয়া নির্দিষ্ট অবজেক্ট রিমুভ করে। সফল হলে true, না হলে false রিটার্ন করে।
উদাহরণ
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList("JavaFX", "Java", "WebGL", "OpenCV"));
System.out.println(arrayList.remove("JavaFX")); // true
System.out.println(arrayList.remove("WebGL")); // true
System.out.println(arrayList); // [Java, OpenCV]
৩. Iterator.remove() মেথড (ইটারেশন중에 সেফ রিমুভাল)
লুপের মধ্যে ArrayList.remove() কল করলে ConcurrentModificationException হয়। Iterator.remove() ব্যবহার করলে এই সমস্যাটা হয় না।
উদাহরণ
import java.util.ArrayList;
import java.util.Iterator;
public class RemoveExample {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>(Arrays.asList("JavaFX", "Java", "WebGL", "OpenCV"));
Iterator<String> it = arrayList.iterator();
it.next(); // "JavaFX" পয়েন্ট করল
it.remove(); // সেটি রিমুভ করল
System.out.println("After Iterator.remove(): " + arrayList); // [Java, WebGL, OpenCV]
}
}
আউটপুট
After Iterator.remove(): [Java, WebGL, OpenCV]
সারসংক্ষেপ: ইনডেক্স জানলে remove(index), অবজেক্ট জানলে remove(object), এবং ইটারেশন중에 রিমুভ করতে হলে Iterator.remove() ব্যবহার করুন।