org.hypergraphdb.util
Class SoftHashMap<K,V>

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by org.hypergraphdb.util.SoftHashMap<K,V>
Type Parameters:
K - The type of the map key.
V - The type of the map value.
All Implemented Interfaces:
java.util.Map<K,V>

public class SoftHashMap<K,V>
extends java.util.AbstractMap<K,V>

This is similar to the standard WeakHashMap, but it uses SoftReferences for the map's values instead of WeakReferences for the maps keys. Thus, an entry is removed from the map when the JVM is low in memory and when the entry's value is softly reachable.

Author:
Borislav Iordanov

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Constructor Summary
SoftHashMap()
           
SoftHashMap(int initialCapacity)
           
SoftHashMap(int initialCapacity, float loadFactor)
           
SoftHashMap(java.util.Map<? extends K,? extends V> m)
           
 
Method Summary
 void clear()
           
 java.util.Set<java.util.Map.Entry<K,V>> entrySet()
           
 V get(java.lang.Object key)
           
 V put(K key, V value)
           
 V remove(java.lang.Object key)
           
 int size()
           
 
Methods inherited from class java.util.AbstractMap
containsKey, containsValue, equals, hashCode, isEmpty, keySet, putAll, toString, values
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SoftHashMap

public SoftHashMap()

SoftHashMap

public SoftHashMap(int initialCapacity)

SoftHashMap

public SoftHashMap(int initialCapacity,
                   float loadFactor)

SoftHashMap

public SoftHashMap(java.util.Map<? extends K,? extends V> m)
Method Detail

get

public V get(java.lang.Object key)
Specified by:
get in interface java.util.Map<K,V>
Overrides:
get in class java.util.AbstractMap<K,V>

put

public V put(K key,
             V value)
Specified by:
put in interface java.util.Map<K,V>
Overrides:
put in class java.util.AbstractMap<K,V>

remove

public V remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map<K,V>
Overrides:
remove in class java.util.AbstractMap<K,V>

clear

public void clear()
Specified by:
clear in interface java.util.Map<K,V>
Overrides:
clear in class java.util.AbstractMap<K,V>

size

public int size()
Specified by:
size in interface java.util.Map<K,V>
Overrides:
size in class java.util.AbstractMap<K,V>

entrySet

public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
Specified by:
entrySet in interface java.util.Map<K,V>
Specified by:
entrySet in class java.util.AbstractMap<K,V>