If you pass a List to the constructor, that is a mutable reference type, so changes in one place would be reflected elsewhere. Look for “defensive copies” and you find a few hits:-
1 2. So you would probably have to find some way of copying the List. If you look
here, you find that you can use the same List, or you can use a read‑only version of it, or you can use a copy which you can modify.
… or you can even use a copy which you cannot modify.