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

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

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

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

Синтаксис:

 public static <K, V> Map <K, V> 
    unmodifiableMap (Map <? extends K,? extends V> m)

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

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

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

Example 1:

// Java program to demonstrate
// unmodifiableMap() method
// for <String, String> value
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
  
        try {
  
            // creating object of Hashtable<String, String>
            Hashtable<String, String>
                table = new Hashtable<String, String>();
  
            // populate the table
            table.put("key1", "1");
            table.put("key2", "2");
            table.put("key3", "3");
  
            // getting unmodifiable map
            // using unmodifiableMap() method
            Map<String, String> m = Collections
                                        .unmodifiableMap(table);
  
            // printing the unmodifiableMap
            System.out.println("Initial collection: " + table);
        }
  
        catch (UnsupportedOperationException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Initial collection: {key3=3, key2=2, key1=1}

Example 2: For UnsupportedOperationException

// Java program to demonstrate
// unmodifiableMap() method
// for <String, String> value
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            // creating object of Hashtable<String, String>
            Hashtable<String, String>
                table = new Hashtable<String, String>();
  
            // populate the table
            table.put("key1", "1");
            table.put("key2", "2");
            table.put("key3", "3");
  
            // getting unmodifiable map
            // using unmodifiableMap() method
            Map<String, String> m = Collections
                                        .unmodifiableMap(table);
  
            // printing the unmodifiableMap
            System.out.println("Initial collection: "
                               + table);
  
            // Adding element to new Collection
            System.out.println(" Trying to modify"
                               + " the unmodifiablemap");
            m.put("key4", "4");
        }
  
        catch (UnsupportedOperationException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Output:
Initial collection: {key3=3, key2=2, key1=1}

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