কপিরআনওরাইটআরলিলিস্ট অ্যারেলিস্টের একটি থ্রেড-সেফ বৈকল্পিক যেখানে অন্তর্নিহিত অ্যারের একটি নতুন অনুলিপি তৈরি করে সমস্ত মিউটেশন অপারেশন (যুক্ত, সেট, এবং তাই) প্রয়োগ করা হয়।
কপিঅনওয়ারাইটআরলিলিস্ট সিঙ্ক্রোনাইজড লিস্ট প্রয়োগের তালিকার ইন্টারফেস এবং java.util.concurrent প্যাকেজের অংশ এবং এটির থ্রেড-নিরাপদ সংগ্রহের সমকালীন বিকল্প।
public class CopyOnWriteArrayList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
অনুলিপি করার সময় অনুলিপি করা অনুলিপি করার সময় কপিরআনরাইটআরলিলিস্টটি ব্যর্থ-নিরাপদ এবং কনকন্টারমোডিফিকেশন এক্সেক্সশনটি নিক্ষেপ করে না যখন অ্যারেলিস্টের পৃথক অনুলিপি ব্যবহার করুন।
এটি সাধারণভাবে খুব ব্যয়বহুল কারণ প্রতি আপডেট ক্রিয়াকলাপে জড়িত অনুলিপি একটি ক্লোনড অনুলিপি তৈরি করা হবে। কপিরাইটঅনরাইটআরলিলিস্ট কেবল ঘন ঘন পঠন অপারেশনের জন্য সেরা পছন্দ।
/**
* Returns a shallow copy of this list. (The elements themselves
* are not copied.)
*
* @return a clone of this list
*/
public Object clone() {
try {
@SuppressWarnings("unchecked")
CopyOnWriteArrayList<E> clone =
(CopyOnWriteArrayList<E>) super.clone();
clone.resetLock();
return clone;
} catch (CloneNotSupportedException e) {
// this shouldn't happen, since we are Cloneable
throw new InternalError();
}
}