Метод Collections unmodifiableMap () в Java с примерами
Метод 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); } } } |
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); } } } |
Initial collection: {key3=3, key2=2, key1=1} Trying to modify the unmodifiablemap Exception thrown : java.lang.UnsupportedOperationException