Search code examples
javaarraysunmodifiable

Java unmodifiable array


final Integer[] arr={1,2,3};
arr[0]=3;
System.out.println(Arrays.toString(arr));

I tried the above code to see whether a final array's variables can be reassigned[ans:it can be].I understand that by a final Integer[] array it means we cannot assign another instance of Integer[] apart from the one we have assigned initially.I would like to know if whether it is possible to make the array variables also unmodifiable.


Solution

  • This isn't possible as far as I know.

    There is however a method Collections.unmodifiableList(..) which creates an unmodifiable view of e.g. a List<Integer>.

    If you want to guarantee that not even the creator of the unmodifiable view list will be able to modify the underlying (modifiable) list, have a look at Guava's ImmutableList.