Class CopyOnWriteHashMap<K,​V>

  • All Implemented Interfaces:
    Map<K,​V>

    public class CopyOnWriteHashMap<K,​V>
    extends Object
    implements Map<K,​V>

    This is a thread hash map for small collections that are stable once built. Until it is stable there will be a race among all threads missing something in the map. They will then clone the map add the missing stuff and then put it back as active again. Here are no locks, but the cost is that inserts will happen a lot more than necessary. The map reference is volatile, but on most multi-cpu machines that has no cost unless modified.

    Author:
    baldersheim
    • Constructor Detail

      • CopyOnWriteHashMap

        public CopyOnWriteHashMap()
    • Method Detail

      • 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>
      • 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> m)
        Specified by:
        putAll in interface Map<K,​V>
      • clear

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

        public Set<K> keySet()
        Specified by:
        keySet in interface Map<K,​V>