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

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

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

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

Синтаксис:

 public static <T> Set <T> unmodifiableSet (Set <? extends T> s)

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

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

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

Example 1:

// Java program to demonstrate
// unmodifiableSet() method
// for <Character> value
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
  
        try {
  
            // creating object of HashSet<Character>
            Set<Character> set = new HashSet<Character>();
  
            // populate the table
            set.add("X");
            set.add("Y");
  
            // make the set unmodifiable
            Set<Character>
                immutableSet = Collections
                                   .unmodifiableSet(set);
  
            // printing unmodifiableSet
            System.out.println("unmodifiable Set: "
                               + immutableSet);
        }
  
        catch (UnsupportedOperationException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
unmodifiable Set: [X, Y]

Example 2: For UnsupportedOperationException

// Java program to demonstrate
// unmodifiableSet() method
// for <Character> value
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            // creating object of HashSet<Character>
            Set<Character> set = new HashSet<Character>();
  
            // populate the table
            set.add("X");
            set.add("Y");
  
            // make the set unmodifiable
            Set<Character>
                immutableSet = Collections
                                   .unmodifiableSet(set);
  
            // printing unmodifiableSet
            System.out.println("unmodifiable Set: "
                               + immutableSet);
  
            System.out.println(" Trying to modify"
                               + " the unmodifiable set");
            immutableSet.add("Z");
        }
  
        catch (UnsupportedOperationException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
unmodifiable Set: [X, Y]

Trying to modify the unmodifiable set
Exception thrown : java.lang.UnsupportedOperationException