In Java: Is List.iterator() thread-safe, i.e. does the returned iterator reflect the current state of the list at any time or just the state of the list at the
List.iterator()
It depends on what class you use,
not for Collections.synchronizedList(new ArrayList<>()); reason but
Collections.synchronizedList(new ArrayList<>());
for CopyOnWriteArrayList reason.
CopyOnWriteArrayList
best Description here