Package hudson.util

Class CopyOnWriteMap<K,V>

java.lang.Object
hudson.util.CopyOnWriteMap<K,V>
All Implemented Interfaces:
Map<K,V>
Direct Known Subclasses:
CopyOnWriteMap.Hash, CopyOnWriteMap.Tree

public abstract class CopyOnWriteMap<K,V> extends Object implements Map<K,V>
Map that has copy-on-write semantics.

This class is suitable where highly concurrent access is needed, yet the write operation is relatively uncommon.

Author:
Kohsuke Kawaguchi
  • Field Details

    • core

      protected volatile Map<K,V> core
  • Constructor Details

    • CopyOnWriteMap

      protected CopyOnWriteMap(Map<K,V> core)
    • CopyOnWriteMap

      protected CopyOnWriteMap()
  • Method Details

    • update

      protected void update(Map<K,V> m)
    • replaceBy

      public void replaceBy(Map<? extends K,? extends V> data)
      Atomically replaces the entire map by the copy of the specified map.
    • size

      public int size()
      Specified by:
      size in interface Map<K,V>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<K,V>
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<K,V>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<K,V>
    • get

      public V get(Object key)
      Specified by:
      get in interface Map<K,V>
    • put

      public V put(K key, V value)
      Specified by:
      put in interface Map<K,V>
    • remove

      public V remove(Object key)
      Specified by:
      remove in interface Map<K,V>
    • putAll

      public void putAll(Map<? extends K,? extends V> t)
      Specified by:
      putAll in interface Map<K,V>
    • copy

      protected abstract Map<K,V> copy()
    • clear

      public void clear()
      Specified by:
      clear in interface Map<K,V>
    • keySet

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

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

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

      public int hashCode()
      Specified by:
      hashCode in interface Map<K,V>
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface Map<K,V>
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object