Class SoftValueHashMap<K,​V>

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

    public class SoftValueHashMap<K,​V>
    extends java.lang.Object
    implements java.util.Map<K,​V>
    This Map will remove entries when the value in the map has been cleaned from garbage collection
    Version:
    $Revision: 1.4 $
    Author:
    Bill Burke
    • 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
      SoftValueHashMap()
      Constructs a new, empty WeakHashMap with the default initial capacity and the default load factor, which is 0.75.
      SoftValueHashMap​(int initialCapacity)
      Constructs a new, empty WeakHashMap with the given initial capacity and the default load factor, which is 0.75.
      SoftValueHashMap​(int initialCapacity, float loadFactor)
      Constructs a new, empty WeakHashMap with the given initial capacity and the given load factor.
      SoftValueHashMap​(java.util.Map<K,​V> t)
      Constructs a new WeakHashMap with the same mappings as the specified Map.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Removes all mappings from this map.
      boolean containsKey​(java.lang.Object key)
      Returns true if this map contains a mapping for the specified key.
      boolean containsValue​(java.lang.Object arg0)  
      java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
      Returns a set of the mappings contained in this hash table.
      V get​(java.lang.Object key)
      Returns the value to which this map maps the specified key.
      boolean isEmpty()
      Returns true if this map contains no key-value mappings.
      java.util.Set<K> keySet()  
      V put​(K key, V value)
      Updates this map so that the given key maps to the given value.
      void putAll​(java.util.Map<? extends K,​? extends V> arg0)  
      V remove​(java.lang.Object key)
      Removes the mapping for the given key from this map, if present.
      int size()
      Returns the number of key-value mappings in this map.
      java.util.Collection<V> values()  
      • Methods inherited from class java.lang.Object

        clone, 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

      • SoftValueHashMap

        public SoftValueHashMap​(int initialCapacity,
                                float loadFactor)
        Constructs a new, empty WeakHashMap with the given initial capacity and the given load factor.
        Parameters:
        initialCapacity - The initial capacity of the WeakHashMap
        loadFactor - The load factor of the WeakHashMap
        Throws:
        java.lang.IllegalArgumentException - If the initial capacity is less than zero, or if the load factor is nonpositive
      • SoftValueHashMap

        public SoftValueHashMap​(int initialCapacity)
        Constructs a new, empty WeakHashMap with the given initial capacity and the default load factor, which is 0.75.
        Parameters:
        initialCapacity - The initial capacity of the WeakHashMap
        Throws:
        java.lang.IllegalArgumentException - If the initial capacity is less than zero
      • SoftValueHashMap

        public SoftValueHashMap()
        Constructs a new, empty WeakHashMap with the default initial capacity and the default load factor, which is 0.75.
      • SoftValueHashMap

        public SoftValueHashMap​(java.util.Map<K,​V> t)
        Constructs a new WeakHashMap with the same mappings as the specified Map. The WeakHashMap is created with an initial capacity of twice the number of mappings in the specified map or 11 (whichever is greater), and a default load factor, which is 0.75.
        Parameters:
        t - the map whose mappings are to be placed in this map.
    • Method Detail

      • entrySet

        public java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
        Returns a set of the mappings contained in this hash table.
        Specified by:
        entrySet in interface java.util.Map<K,​V>
      • size

        public int size()
        Returns the number of key-value mappings in this map. Note: In contrast with most implementations of the Map interface, the time required by this operation is linear in the size of the map.
        Specified by:
        size in interface java.util.Map<K,​V>
      • isEmpty

        public boolean isEmpty()
        Returns true if this map contains no key-value mappings.
        Specified by:
        isEmpty in interface java.util.Map<K,​V>
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Returns true if this map contains a mapping for the specified key.
        Specified by:
        containsKey in interface java.util.Map<K,​V>
        Parameters:
        key - The key whose presence in this map is to be tested.
      • get

        public V get​(java.lang.Object key)
        Returns the value to which this map maps the specified key. If this map does not contain a value for this key, then return null.
        Specified by:
        get in interface java.util.Map<K,​V>
        Parameters:
        key - The key whose associated value, if any, is to be returned.
      • put

        public V put​(K key,
                     V value)
        Updates this map so that the given key maps to the given value. If the map previously contained a mapping for key then that mapping is replaced and the previous value is returned.
        Specified by:
        put in interface java.util.Map<K,​V>
        Parameters:
        key - The key that is to be mapped to the given value
        value - The value to which the given key is to be mapped
        Returns:
        The previous value to which this key was mapped, or null if if there was no mapping for the key
      • remove

        public V remove​(java.lang.Object key)
        Removes the mapping for the given key from this map, if present.
        Specified by:
        remove in interface java.util.Map<K,​V>
        Parameters:
        key - The key whose mapping is to be removed.
        Returns:
        The value to which this key was mapped, or null if there was no mapping for the key.
      • clear

        public void clear()
        Removes all mappings from this map.
        Specified by:
        clear in interface java.util.Map<K,​V>
      • containsValue

        public boolean containsValue​(java.lang.Object arg0)
        Specified by:
        containsValue in interface java.util.Map<K,​V>
      • keySet

        public java.util.Set<K> keySet()
        Specified by:
        keySet in interface java.util.Map<K,​V>
      • putAll

        public void putAll​(java.util.Map<? extends K,​? extends V> arg0)
        Specified by:
        putAll in interface java.util.Map<K,​V>
      • values

        public java.util.Collection<V> values()
        Specified by:
        values in interface java.util.Map<K,​V>