In CopyOnWriteArrayList, operations such as add, remove, etc., are implemented on a copy of the of the array. It definitely impacts performance but the trade-off is that the data remains intact.
import java.util.Iterator;import java.util.concurrent.CopyOnWriteArrayList;public class UsingCopyOnWriteArrayList{ public static void main(String args[]) { CopyOnWriteArrayList copyOnWriteArrayList = new CopyOnWriteArrayList(); copyOnWriteArrayList.add("United Status"); copyOnWriteArrayList.add("France"); copyOnWriteArrayList.add("China"); copyOnWriteArrayList.add("Russia"); copyOnWriteArrayList.add("United Kingdom"); Iterator iteratorForCopyOnWriteArrayList = copyOnWriteArrayList.iterator(); System.out.println("Iterating CopyOnWriteArrayList"); while(iteratorForCopyOnWriteArrayList.hasNext()){ System.out.println("Element : " + iteratorForCopyOnWriteArrayList.next()); } }}/*
Expected output:
[[email protected]]# java UsingCopyOnWriteArrayListIterating CopyOnWriteArrayListElement : United StatusElement : FranceElement : ChinaElement : RussiaElement : United Kingdom*/