Метод Collections unmodifiableList () в Java с примерами
Метод 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); } } } |
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); } } } |
Initial list: [X, Y] Trying to modify the unmodifiablelist Exception thrown : java.lang.UnsupportedOperationException