For that you can use CopyOnWriteArrayListsince ArrayList is not thread safe.
CopyOnWriteArrayList
EDIT:
I'm just gonna quote Oracle to show you that this is what you need:
A thread-safe variant of ArrayList in which all mutative operations (add, set, and so on) are implemented by making a fresh copy of the underlying array.
This is ordinarily too costly, but may be more efficient than alternatives when traversal operations vastly outnumber mutations, and is useful when you cannot or don't want to synchronize traversals, yet need to preclude interference among concurrent threads.