Class UnmodifiableMap<K,​V>

  • All Implemented Interfaces:
    java.io.Serializable, java.util.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, java.io.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
    Version:
    $Id: UnmodifiableMap.java 1686855 2015-06-22 13:00:27Z tn $
    See Also:
    Serialized Form
    • Nested Class Summary

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

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()  
      java.util.Set<java.util.Map.Entry<K,​V>> entrySet()  
      java.util.Set<K> keySet()  
      MapIterator<K,​V> mapIterator()
      Obtains a MapIterator over the map.
      V put​(K key, V value)
      Note that the return type is Object, rather than V as in the Map interface.
      void putAll​(java.util.Map<? extends K,​? extends V> mapToCopy)  
      V remove​(java.lang.Object key)  
      static <K,​V>
      java.util.Map<K,​V>
      unmodifiableMap​(java.util.Map<? extends K,​? extends V> map)
      Factory method to create an unmodifiable map.
      java.util.Collection<V> values()  
      • 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 Detail

      • unmodifiableMap

        public static <K,​V> java.util.Map<K,​V> unmodifiableMap​(java.util.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:
        java.lang.NullPointerException - if map is null
        Since:
        4.0
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<K,​V>
        Specified by:
        clear in interface Put<K,​V>
        Overrides:
        clear in class AbstractMapDecorator<K,​V>
        See Also:
        Map.clear()
      • put

        public V put​(K key,
                     V value)
        Description copied from interface: Put
        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 java.util.Map<K,​V>
        Specified by:
        put in interface Put<K,​V>
        Overrides:
        put in class AbstractMapDecorator<K,​V>
        See Also:
        Map.put(Object, Object)
      • putAll

        public void putAll​(java.util.Map<? extends K,​? extends V> mapToCopy)
        Specified by:
        putAll in interface java.util.Map<K,​V>
        Specified by:
        putAll in interface Put<K,​V>
        Overrides:
        putAll in class AbstractMapDecorator<K,​V>
        See Also:
        Map.putAll(Map)
      • remove

        public V remove​(java.lang.Object key)
        Specified by:
        remove in interface Get<K,​V>
        Specified by:
        remove in interface java.util.Map<K,​V>
        Overrides:
        remove in class AbstractMapDecorator<K,​V>
        See Also:
        Map.remove(Object)
      • 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 map = new HashedMap();
         MapIterator 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
      • entrySet

        public java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
        Specified by:
        entrySet in interface Get<K,​V>
        Specified by:
        entrySet in interface java.util.Map<K,​V>
        Overrides:
        entrySet in class AbstractMapDecorator<K,​V>
        See Also:
        Map.entrySet()
      • keySet

        public java.util.Set<K> keySet()
        Specified by:
        keySet in interface Get<K,​V>
        Specified by:
        keySet in interface java.util.Map<K,​V>
        Overrides:
        keySet in class AbstractMapDecorator<K,​V>
        See Also:
        Map.keySet()
      • values

        public java.util.Collection<V> values()
        Specified by:
        values in interface Get<K,​V>
        Specified by:
        values in interface java.util.Map<K,​V>
        Overrides:
        values in class AbstractMapDecorator<K,​V>
        See Also:
        Map.values()