Junior — Middle
What types of implementations of list-type collections exist that ensure internal copying when traversing their elements?
sobes.tech AI
Answer from AI
In Java, there is a list-type collection that provides internal copying when iterating over elements — this is CopyOnWriteArrayList from the java.util.concurrent package.
Features of CopyOnWriteArrayList:
- Each modification operation (adding, removing) creates a new copy of the internal array.
- Iterators of this collection work on an immutable snapshot of the data, allowing safe traversal of elements without
ConcurrentModificationException. - Suitable for scenarios with frequent reads and infrequent modifications.
Example of usage:
import java.util.concurrent.CopyOnWriteArrayList;
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("one");
list.add("two");
for (String item : list) {
System.out.println(item);
// It is safe to modify the list during iteration
list.add("three");
}
Thus, CopyOnWriteArrayList is a primary example of a list with internal copying during element traversal.