CopyOnWriteArrayList, tüm değişken işlemlerin (ekleme, ayarlama vb.) Temel dizinin yeni bir kopyasını oluşturarak uygulandığı ArrayList'in iş parçacığı için güvenli bir çeşididir.
CopyOnWriteArrayList senkronize Liste uygulayan Liste arabiriminin eşzamanlı bir alternatifidir ve java.util.concurrent paketinin bir parçasıdır ve iş parçacığı için güvenli bir koleksiyondur.
public class CopyOnWriteArrayList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
CopyOnWriteArrayList hata korumalıdır ve Yineleme sırasında temel CopyOnWriteArrayList değiştirilirken ConcurrentModificationException öğesini atmaz ArrayList'in ayrı bir kopyasını kullanın.
Kopyalama dizisi, klonlanmış bir kopya oluşturulacak her güncelleme işlemini içerdiğinden, bu genellikle çok maliyetlidir. CopyOnWriteArrayList yalnızca sık okuma işlemi için en iyi seçimdir.
/**
* 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();
}
}