org.apache.jdo.util
Class WeakValueHashMap

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap
          extended by org.apache.jdo.util.WeakValueHashMap
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map

public class WeakValueHashMap
extends java.util.HashMap

A WeakValueHashMap is implemented as a HashMap that maps keys to WeakValues. Because we don't have access to the innards of the HashMap, we have to wrap/unwrap value objects with WeakValues on every operation. Fortunately WeakValues are small, short-lived objects, so the added allocation overhead is tolerable. This implementaton directly extends java.util.HashMap.

Author:
Markus Fuchs
See Also:
HashMap, WeakReference, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Constructor Summary
WeakValueHashMap()
           
 
Method Summary
 boolean containsKey(java.lang.Object key)
          Returns true if this map contains a mapping for the specified key.
 boolean containsValue(java.lang.Object value)
          Returns true if this map maps one or more keys to the specified value.
 java.util.Set entrySet()
          Returns a Set view of the mappings in this map.
 java.lang.Object get(java.lang.Object key)
          Gets the value for the given key.
 boolean isEmpty()
          Returns true if this map contains no key-value mappings.
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          Puts a new (key,value) into the map.
 java.lang.Object remove(java.lang.Object key)
          Removes key and value for the given key.
 int size()
          Returns the number of key-value mappings in this map.
 java.util.Collection values()
          Returns a Collection view of the values contained in this map.
 
Methods inherited from class java.util.HashMap
clear, clone, keySet, putAll
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

WeakValueHashMap

public WeakValueHashMap()
Method Detail

size

public int size()
Returns the number of key-value mappings in this map.

Specified by:
size in interface java.util.Map
Overrides:
size in class java.util.HashMap
Returns:
the number of key-value mappings in this map.

isEmpty

public boolean isEmpty()
Returns true if this map contains no key-value mappings.

Specified by:
isEmpty in interface java.util.Map
Overrides:
isEmpty in class java.util.HashMap
Returns:
true if this map contains no key-value mappings.

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
Overrides:
containsKey in class java.util.HashMap
Parameters:
key - key whose presence in this map is to be tested
Returns:
true if this map contains a mapping for the specified key.

containsValue

public boolean containsValue(java.lang.Object value)
Returns true if this map maps one or more keys to the specified value.

Specified by:
containsValue in interface java.util.Map
Overrides:
containsValue in class java.util.HashMap
Parameters:
value - value whose presence in this map is to be tested
Returns:
true if this map maps one or more keys to this value.

get

public java.lang.Object get(java.lang.Object key)
Gets the value for the given key.

Specified by:
get in interface java.util.Map
Overrides:
get in class java.util.HashMap
Parameters:
key - key whose associated value, if any, is to be returned
Returns:
the value to which this map maps the specified key.

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
Puts a new (key,value) into the map.

Specified by:
put in interface java.util.Map
Overrides:
put in class java.util.HashMap
Parameters:
key - key with which the specified value is to be associated.
value - value to be associated with the specified key.
Returns:
previous value associated with specified key, or null if there was no mapping for key or the value has been garbage collected by the garbage collector.

remove

public java.lang.Object remove(java.lang.Object key)
Removes key and value for the given key.

Specified by:
remove in interface java.util.Map
Overrides:
remove in class java.util.HashMap
Parameters:
key - key whose mapping is to be removed from the map.
Returns:
previous value associated with specified key, or null if there was no mapping for key or the value has been garbage collected by the garbage collector.

entrySet

public java.util.Set entrySet()
Returns a Set view of the mappings in this map.

Specified by:
entrySet in interface java.util.Map
Overrides:
entrySet in class java.util.HashMap
Returns:
a Set view of the mappings in this map.

values

public java.util.Collection values()
Returns a Collection view of the values contained in this map.

Specified by:
values in interface java.util.Map
Overrides:
values in class java.util.HashMap
Returns:
a Collection view of the values contained in this map.


Copyright © 2005-2011 Apache Software Foundation. All Rights Reserved.