Package org.apache.commons.collections4.map

# Class UnmodifiableMap<K,V>

java.lang.Object
org.apache.commons.collections4.map.AbstractIterableMap<K,V>
org.apache.commons.collections4.map.AbstractMapDecorator<K,V>
org.apache.commons.collections4.map.UnmodifiableMap<K,V>

Type Parameters:
  `K` - the type of the keys in this map
  `V` - the type of the values in this map

All Implemented Interfaces:
  `Serializable`, `Map<K,V>`, `Get<K,V>`, `IterableGet<K,V>`, `IterableMap<K,V>`, `Put<K,V>`, `Unmodifiable`

public final class UnmodifiableMap<K,V> extends AbstractMapDecorator<K,V> implements Unmodifiable, Serializable
Decorates another `Map` to ensure it can't be altered.

This class is Serializable from Commons Collections 3.1.

Attempts to modify it will result in an UnsupportedOperationException.

Since:
  3.0
See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface java.util.Map

  `Map.Entry<K,V>`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  Removes all of the mappings from this map.
  `Set<Map.Entry<K,V>>`
  `entrySet()`
  Gets a set view of the mappings contained in this map.
  `Set<K>`
  `keySet()`
  Gets a view of the keys contained in this map.
  `MapIterator<K,V>`
  `mapIterator()`
  Obtains a `MapIterator` over the map.
  `V`
  `put(K key, V value)`
  Associates the specified value with the specified key in this map.
  `void`
  `putAll(Map<? extends K,? extends V> mapToCopy)`
  Copies all of the mappings from the specified map to this map.
  `V`
  `remove(Object key)`
  Remove a key-value mappings.
  `static <K, V> Map<K,V>`
  `unmodifiableMap(Map<? extends K,? extends V> map)`
  Factory method to create an unmodifiable map.
  `Collection<V>`
  `values()`
  Gets a a collection view of the values contained in this map.

  ### Methods inherited from class org.apache.commons.collections4.map.AbstractMapDecorator

  `containsKey, containsValue, decorated, equals, get, hashCode, isEmpty, size, toString`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface java.util.Map

  `compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

- ## Method Details

  - ### unmodifiableMap

    public static <K, V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> map)
    Factory method to create an unmodifiable map.
    Type Parameters:
      `K` - the key type
      `V` - the value type
    Parameters:
      `map` - the map to decorate, must not be null
    Returns:
      a new unmodifiable map
    Throws:
      `NullPointerException` - if map is null
    Since:
      4.0

  - ### clear

    public void clear()
    Description copied from interface: `Put`
    Removes all of the mappings from this map.
    Specified by:
      `clear` in interface `Map<K,V>`
    Specified by:
      `clear` in interface `Put<K,V>`
    Overrides:
      `clear` in class `AbstractMapDecorator<K,V>`
    See Also:
      - `Map.clear()`

  - ### entrySet

    public Set<Map.Entry<K,V>> entrySet()
    Description copied from interface: `Get`
    Gets a set view of the mappings contained in this map.
    Specified by:
      `entrySet` in interface `Get<K,V>`
    Specified by:
      `entrySet` in interface `Map<K,V>`
    Overrides:
      `entrySet` in class `AbstractMapDecorator<K,V>`
    Returns:
      a set view of the mappings contained in this map.
    See Also:
      - `Map.entrySet()`

  - ### keySet

    public Set<K> keySet()
    Description copied from interface: `Get`
    Gets a view of the keys contained in this map.
    Specified by:
      `keySet` in interface `Get<K,V>`
    Specified by:
      `keySet` in interface `Map<K,V>`
    Overrides:
      `keySet` in class `AbstractMapDecorator<K,V>`
    Returns:
      a set view of the keys contained in this map
    See Also:
      - `Map.keySet()`

  - ### mapIterator

    public MapIterator<K,V> mapIterator()
    Description copied from class: `AbstractIterableMap`
    Obtains a `MapIterator` over the map.

    A map iterator is an efficient way of iterating over maps. There is no need to access the entry set or use Map Entry objects.

         IterableMap<String,Integer> map = new HashedMap<String,Integer>();
         MapIterator<String,Integer> it = map.mapIterator();
         while (it.hasNext()) {
           String key = it.next();
           Integer value = it.getValue();
           it.setValue(value + 1);
         }

    Specified by:
      `mapIterator` in interface `IterableGet<K,V>`
    Overrides:
      `mapIterator` in class `AbstractIterableMap<K,V>`
    Returns:
      a map iterator

  - ### put

    public V put(K key, V value)
    Description copied from interface: `Put`
    Associates the specified value with the specified key in this map.

    Note that the return type is Object, rather than V as in the Map interface. See the class Javadoc for further info.

    Specified by:
      `put` in interface `Map<K,V>`
    Specified by:
      `put` in interface `Put<K,V>`
    Overrides:
      `put` in class `AbstractMapDecorator<K,V>`
    Parameters:
      `key` - key with which the specified value is to be associated
      `value` - value to be associated with the specified key
    Returns:
      the previous value associated with `key`, or `null` if there was no mapping for `key`. (A `null` return can also indicate that the map previously associated `null` with `key`, if the implementation supports `null` values.)
    See Also:
      - `Map.put(Object, Object)`

  - ### putAll

    public void putAll(Map<? extends K,? extends V> mapToCopy)
    Description copied from interface: `Put`
    Copies all of the mappings from the specified map to this map.
    Specified by:
      `putAll` in interface `Map<K,V>`
    Specified by:
      `putAll` in interface `Put<K,V>`
    Overrides:
      `putAll` in class `AbstractMapDecorator<K,V>`
    Parameters:
      `mapToCopy` - mappings to be stored in this map
    See Also:
      - `Map.putAll(Map)`

  - ### remove

    public V remove(Object key)
    Description copied from interface: `Get`
    Remove a key-value mappings.
    Specified by:
      `remove` in interface `Get<K,V>`
    Specified by:
      `remove` in interface `Map<K,V>`
    Overrides:
      `remove` in class `AbstractMapDecorator<K,V>`
    Parameters:
      `key` - key whose mapping is to be removed from the map
    Returns:
      the previous value associated with `key`, or `null` if there was no mapping for `key`.
    See Also:
      - `Map.remove(Object)`

  - ### values

    public Collection<V> values()
    Description copied from interface: `Get`
    Gets a a collection view of the values contained in this map.
    Specified by:
      `values` in interface `Get<K,V>`
    Specified by:
      `values` in interface `Map<K,V>`
    Overrides:
      `values` in class `AbstractMapDecorator<K,V>`
    Returns:
      a collection view of the values contained in this map.
    See Also:
      - `Map.values()`