ArrayList হল AbstractList ক্লাসের একটি সাবক্লাস এবং এটি এলিমেন্টের ডাইনামিক্যালি সাইজড কালেকশন সংরক্ষণের জন্য ব্যবহার করা হয়। নতুন এলিমেন্ট যোগ করার জন্য ArrayList আপনার আকার বাড়ায় এবং এলিমেন্ট সরানোর সময় আকার ছোট করে, তাই এটিকে রিসাইজেবল বা ডাইনামিক অ্যারে বলা হয়। ArrayList ডুপ্লিকেট এবং নাল ভ্যালু অনুমতি দেয়।
জাভাতে ArrayList সিঙ্ক্রোনাইজ করার দুইটি পদ্ধতি আছে।
Collections.synchronizedList() মেথড
synchronizedList() মেথড জাভাতে কালেকশন সিঙ্ক্রোনাইজ করতে ব্যবহৃত হয়।
সিনট্যাক্স
public static List<T> synchronizedList(List<T> list)
উদাহরণ
import java.util.*;
public class SynchronizedListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("IND");
list.add("AUS");
list.add("WI");
list.add("NZ");
list.add("ENG");
List<String> synlist = Collections.synchronizedList(list);
synchronized(synlist) {
Iterator<String> itr = synlist.iterator();
while(itr.hasNext()) {
String str = itr.next();
System.out.println(str);
}
}
}
}
আউটপুট
IND AUS WI NZ ENG
CopyOnWriteArrayList
CopyOnWriteArrayList নির্দিষ্ট কালেকশনের ক্রমে এলিমেন্টের একটি লিস্ট তৈরি করে। এটি ArrayList-এর থ্রেড-সেফ কাঙ্কারেন্ট অ্যাক্সেস। যখন একটি ArrayList মডিফাই করা হয়, তবে এটি অন্তর্নিহিত অ্যারে-এর একটি নতুন কপি তৈরি করে।
সিনট্যাক্স
public class CopyOnWriteArrayList<E> extends Object implements List<E>, RandomAccess, Cloneable, Serializable
উদাহরণ
import java.util.*;
import java.util.concurrent.*;
public class CopyOnWriteArrayListTest {
public static void main(String[] args) {
CopyOnWriteArrayList list = new CopyOnWriteArrayList();
list.add("Java");
list.add("Scala");
list.add("Python");
list.add("Selenium");
list.add("ServiceNow");
System.out.println("Displaying synchronized ArrayList: ");
Iterator itr = list.iterator();
while(itr.hasNext()) {
String str = itr.next();
System.out.println(str);
}
}
}
আউটপুট
Displaying synchronized ArrayList: Java Scala Python Selenium ServiceNow