Метод Collections unmodifiableList () в Java с примерами

Опубликовано: 1 Марта, 2022

Метод unmodifiableList () класса java.util.Collections используется для возврата неизменяемого представления указанного списка. Этот метод позволяет модулям предоставлять пользователям доступ «только для чтения» к внутренним спискам. Операции запроса в возвращенном списке «читают» в указанный список и попытки изменить возвращенный список, напрямую или через его итератор, приводят к исключению UnsupportedOperationException.

Возвращенный список будет сериализуемым, если указанный список сериализуем. Точно так же возвращенный список будет реализовывать RandomAccess, если указанный список делает.

Синтаксис:

 общедоступный статический <T> ListT> 
    unmodifiableList (список <? extends T> список)

Параметры: этот метод принимает список в качестве параметра, для которого должно быть возвращено неизменяемое представление.

Возвращаемое значение: этот метод возвращает неизменяемое представление указанного списка.

Ниже приведены примеры, иллюстрирующие метод unmodifiableList ().

Example 1:

// 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");
  
            // printing the list
            System.out.println("Initial list: " + list);
  
            // getting unmodifiable list
            // using unmodifiableList() method
            List<Character> immutablelist = Collections
                                                .unmodifiableList(list);
  
            // printing the list
            System.out.println("Unmodifiable list: "
                               + immutablelist);
        }
  
        catch (UnsupportedOperationException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Initial list: [X, Y]
Unmodifiable list: [X, Y]

Example 2: For UnsupportedOperationException

// 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");
  
            // printing the list
            System.out.println("Initial list: " + list);
  
            // getting unmodifiable list
            // using unmodifiableList() method
            List<Character> immutablelist = Collections
                                                .unmodifiableList(list);
  
            // Adding element to new Collection
            System.out.println(" Trying to modify"
                               + " the unmodifiablelist");
            immutablelist.add("Z");
        }
  
        catch (UnsupportedOperationException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Initial list: [X, Y]

Trying to modify the unmodifiablelist
Exception thrown : java.lang.UnsupportedOperationException