How to restrict accessing of an Arraylist and disallow change?

arraylist, immutability, java

Solution

A classic solution is to wrap it using `Collections.unmodifiableList()`.

For example:

List<Integer> sourceList;
// ...
List<Integer> readOnlyList = Collections.unmodifiableList(sourceList);

This will prevent everything except reading. If you want to prevent reading, make it `private`.

Problem

How could I restrict the accessing (retrieving/inserting/updating/deleting) of an Arraylist and disallow changes to its values? I had faced this question in an interview.

Original source