元の Map のサブビューにエントリを追加するときに、JVM は UnsupportedOperationException をキャッチしますが、JVM は元のビューに直接追加することを気にしません。コードは次のように話します。
ConcurrentMap<String, Integer> origView= new ConcurrentHashMap<String, Integer>();
Map<String,Integer> subView = Collections.unmodifiableMap(origView);
origView.put("s", 44); // ok
subView.put("p", 77); // java.lang.UnsupportedOperationException
ただし、Collections.unmodifiableSortedMap() のドキュメントには次のように書かれています。
返されたソート済みマップを変更しようとすると、そのコレクション ビューを介して、またはその subMap、headMap、または tailMap ビューを介して、直接、UnsupportedOperationException が発生します。
手を貸してください、ありがとう。