How to make an ArrayList read only in Java
Given an ArrayList, the task is to make this ArrayList read-only in Java.
Examples:
Input: ArrayList: [1, 2, 3, 4, 5] Output: Read-only ArrayList: [1, 2, 3, 4, 5] Input: ArrayList: [geeks, for, geeks] Output: Read-only ArrayList: [geeks, for, geeks]
An ArrayList can be made read-only easily with the help of Collections.unmodifiableList() method. This method takes the modifiable ArrayList as a parameter and returns the read-only unmodifiable view of this ArrayList.
Syntax:
readOnlyArrayList = Collections.unmodifiableList(ArrayList);
Below is the implementation of the above approach:
// Java program to demonstrate // unmodifiableList() method import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // creating object of ArrayList<Character> List<Character> list = new ArrayList<Character>(); // populate the list list.add( 'X' ); list.add( 'Y' ); list.add( 'Z' ); // printing the list System.out.println( "Initial list: " + list); // getting readonly list // using unmodifiableList() method List<Character> immutablelist = Collections .unmodifiableList(list); // printing the list System.out.println( "ReadOnly ArrayList: " + immutablelist); // Adding element to new Collection System.out.println( "\nTrying to modify" + " the ReadOnly ArrayList." ); immutablelist.add( 'A' ); } catch (UnsupportedOperationException e) { System.out.println( "Exception thrown : " + e); } } } |
Output:
Initial list: [X, Y, Z] ReadOnly ArrayList: [X, Y, Z] Trying to modify the ReadOnly ArrayList. Exception thrown : java.lang.UnsupportedOperationException
Please Login to comment...