Сделать хеш-таблицу неизменяемой и доступной только для чтения в Java

Из соображений безопасности иногда необходимо изменить права доступа, чтобы избежать ошибочной модификации. Вот почему в Java есть метод, который делает нашу Hashtable недоступной для записи или, другими словами, Hashtable, которая не может быть изменена только для чтения.

Чтобы изменить права доступа, достаточно вызвать метод класса Collections java.util.Collections.unmodifiableMap(Карта карты).

публичный статический < К,В> Карта< К,В> unmodifiableMap(Map m): Этот метод возвращает неизменяемое представление Hashtable, которое не может быть отредактировано.

В следующем примере показано использование метода java.util.Collections.unmodifiableMap().

import java.util.Collections; 
import java.util.Hashtable;
import java.util.Map;

public class Unmodifiable_Hashtable {
public static void main(String[] s) {
Hashtable hashtable = new Hashtable();
hashtable.put("1", "val1");
hashtable.put("2", "val2");
hashtable.put("3", "val3");

Map m = Collections.unmodifiableMap(hashtable);

m.put("4", "val4");

System.out.println(m);
}
}
После компиляции и выполнения приведенного выше кода будет получен следующий результат:

Исключение в потоке "main" java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableMap.put(Unknown Source)
at HashTable.Unmodifiable_Hashtable.main(Unmodifiable_Hashtable.java:16)
References:
java.util.Collections.unmodifiableMap() method