Class CopyOnWriteMap<K,​V>

  • Type Parameters:
    K - The key type
    V - The value type
    All Implemented Interfaces:
    java.lang.Cloneable, java.util.Map<K,​V>

    public class CopyOnWriteMap<K,​V>
    extends java.lang.Object
    implements java.util.Map<K,​V>, java.lang.Cloneable
    A thread-safe version of Map in which all operations that change the Map are implemented by making a new copy of the underlying Map. While the creation of a new Map can be expensive, this class is designed for cases in which the primary function is to read data from the Map, not to modify the Map. Therefore the operations that do not cause a change to this class happen quickly and concurrently.
    Author:
    Apache MINA Project
    • 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>
    • Constructor Summary

      Constructors 
      Constructor Description
      CopyOnWriteMap()
      Creates a new instance of CopyOnWriteMap.
      CopyOnWriteMap​(int initialCapacity)
      Creates a new instance of CopyOnWriteMap with the specified initial size
      CopyOnWriteMap​(java.util.Map<K,​V> data)
      Creates a new instance of CopyOnWriteMap in which the initial data being held by this map is contained in the supplied map.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Removes all entries in this map.
      java.lang.Object clone()  
      boolean containsKey​(java.lang.Object key)  
      boolean containsValue​(java.lang.Object value)  
      java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
      This method will return a read-only Set.
      V get​(java.lang.Object key)  
      boolean isEmpty()  
      java.util.Set<K> keySet()
      This method will return a read-only Set.
      V put​(K key, V value)
      Adds the provided key and value to this map.
      void putAll​(java.util.Map<? extends K,​? extends V> newData)
      Inserts all the keys and values contained in the provided map to this map.
      V remove​(java.lang.Object key)
      Removed the value and key from this map based on the provided key.
      int size()  
      java.util.Collection<V> values()
      This method will return a read-only Collection.
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Constructor Detail

      • CopyOnWriteMap

        public CopyOnWriteMap()
        Creates a new instance of CopyOnWriteMap.
      • CopyOnWriteMap

        public CopyOnWriteMap​(int initialCapacity)
        Creates a new instance of CopyOnWriteMap with the specified initial size
        Parameters:
        initialCapacity - The initial size of the Map.
      • CopyOnWriteMap

        public CopyOnWriteMap​(java.util.Map<K,​V> data)
        Creates a new instance of CopyOnWriteMap in which the initial data being held by this map is contained in the supplied map.
        Parameters:
        data - A Map containing the initial contents to be placed into this class.
    • Method Detail

      • put

        public V put​(K key,
                     V value)
        Adds the provided key and value to this map.
        Specified by:
        put in interface java.util.Map<K,​V>
        See Also:
        Map.put(java.lang.Object, java.lang.Object)
      • remove

        public V remove​(java.lang.Object key)
        Removed the value and key from this map based on the provided key.
        Specified by:
        remove in interface java.util.Map<K,​V>
        See Also:
        Map.remove(java.lang.Object)
      • putAll

        public void putAll​(java.util.Map<? extends K,​? extends V> newData)
        Inserts all the keys and values contained in the provided map to this map.
        Specified by:
        putAll in interface java.util.Map<K,​V>
        See Also:
        Map.putAll(java.util.Map)
      • clear

        public void clear()
        Removes all entries in this map.
        Specified by:
        clear in interface java.util.Map<K,​V>
        See Also:
        Map.clear()
      • size

        public int size()
        Specified by:
        size in interface java.util.Map<K,​V>
        Returns:
        the number of key/value pairs in this map.
        See Also:
        Map.size()
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Map<K,​V>
        Returns:
        true if this map is empty, otherwise false.
        See Also:
        Map.isEmpty()
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Specified by:
        containsKey in interface java.util.Map<K,​V>
        Returns:
        true if this map contains the provided key, otherwise this method return false.
        See Also:
        Map.containsKey(java.lang.Object)
      • containsValue

        public boolean containsValue​(java.lang.Object value)
        Specified by:
        containsValue in interface java.util.Map<K,​V>
        Returns:
        true if this map contains the provided value, otherwise this method returns false.
        See Also:
        Map.containsValue(java.lang.Object)
      • get

        public V get​(java.lang.Object key)
        Specified by:
        get in interface java.util.Map<K,​V>
        Returns:
        the value associated with the provided key from this map.
        See Also:
        Map.get(java.lang.Object)
      • keySet

        public java.util.Set<K> keySet()
        This method will return a read-only Set.
        Specified by:
        keySet in interface java.util.Map<K,​V>
      • values

        public java.util.Collection<V> values()
        This method will return a read-only Collection.
        Specified by:
        values in interface java.util.Map<K,​V>
      • entrySet

        public java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
        This method will return a read-only Set.
        Specified by:
        entrySet in interface java.util.Map<K,​V>
      • clone

        public java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object