Коллекции unmodifiableCollection () метод в Java с примерами

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

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

Возвращенная коллекция не передает hashCode и операции equals в резервную коллекцию, но полагается на методы equals и hashCode объекта. Это необходимо для сохранения контрактов этих операций в случае, если вспомогательная коллекция является набором или списком.

Возвращенная коллекция будет сериализуемой, если указанная коллекция сериализуема.

Синтаксис:

 общедоступный статический <T> Коллекция <T> 
    unmodifiableCollection (Коллекция <? extends T> c)

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

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

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

Example 1:

// Java program to demonstrate
// unmodifiableCollection() method
// for <Character> Value
  
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 unmodifiableCollection() method
            Collection<Character>
                immutablelist = Collections
                                    .unmodifiableCollection(list);
        }
        catch (UnsupportedOperationException e) {
  
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Initial list: [X, Y]

Example 2: For UnsupportedOperationException

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

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