Class AbstractMap<K,V>
- java.lang.Object
-
- de.gsi.dataset.utils.trees.AbstractMap<K,V>
-
- Type Parameters:
K- the type of keys maintained by this mapV- the type of mapped values
- All Implemented Interfaces:
java.util.Map<K,V>
- Direct Known Subclasses:
IndexedTreeMap
public abstract class AbstractMap<K,V> extends java.lang.Object implements java.util.Map<K,V>This class provides a skeletal implementation of the
Mapinterface, to minimize the effort required to implement this interface.To implement an unmodifiable map, the programmer needs only to extend this class and provide an implementation for the
entrySetmethod, which returns a set-view of the map's mappings. Typically, the returned set will, in turn, be implemented atopAbstractSet. This set should not support theaddorremovemethods, and its iterator should not support theremovemethod.To implement a modifiable map, the programmer must additionally override this class's
putmethod (which otherwise throws anUnsupportedOperationException), and the iterator returned byentrySet().iterator()must additionally implement itsremovemethod.The programmer should generally provide a void (no argument) and map constructor, as per the recommendation in the
Mapinterface specification.The documentation for each non-abstract method in this class describes its implementation in detail. Each of these methods may be overridden if the map being implemented admits a more efficient implementation.
This class is a member of the Java Collections Framework.
- Since:
- 1.2
- Version:
- %I%, %G%
- Author:
- Josh Bloch, Neal Gafter
- See Also:
Map,Collection
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractMap.SimpleEntry<K,V>An Entry maintaining a key and a value.static classAbstractMap.SimpleImmutableEntry<K,V>An Entry maintaining an immutable key and value.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractMap()Sole constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclear()This implementation callsentrySet().clear().protected java.lang.Objectclone()Returns a shallow copy of thisAbstractMapinstance: the keys and values themselves are not cloned.booleancontainsKey(java.lang.Object key)This implementation iterates overentrySet()searching for an entry with the specified key.booleancontainsValue(java.lang.Object value)This implementation iterates overentrySet()searching for an entry with the specified value.abstract java.util.Set<java.util.Map.Entry<K,V>>entrySet()booleanequals(java.lang.Object o)Compares the specified object with this map for equality.Vget(java.lang.Object key)This implementation iterates overentrySet()searching for an entry with the specified key.inthashCode()Returns the hash code value for this map.booleanisEmpty()This implementation returnssize() == 0.java.util.Set<K>keySet()This implementation returns a set that subclassesAbstractSet.Vput(K key, V value)This implementation always throws anUnsupportedOperationException.voidputAll(java.util.Map<? extends K,? extends V> m)Vremove(java.lang.Object key)This implementation iterates overentrySet()searching for an entry with the specified key.intsize()This implementation returnsentrySet().size().java.lang.StringtoString()Returns a string representation of this map.java.util.Collection<V>values()This implementation returns a collection that subclassesAbstractCollection.
-
-
-
Method Detail
-
size
public int size()
This implementation returnsentrySet().size().
-
isEmpty
public boolean isEmpty()
This implementation returnssize() == 0.
-
containsValue
public boolean containsValue(java.lang.Object value)
This implementation iterates overentrySet()searching for an entry with the specified value. If such an entry is found,trueis returned. If the iteration terminates without finding such an entry,falseis returned. Note that this implementation requires linear time in the size of the map.
-
containsKey
public boolean containsKey(java.lang.Object key)
This implementation iterates overentrySet()searching for an entry with the specified key. If such an entry is found,trueis returned. If the iteration terminates without finding such an entry,falseis returned. Note that this implementation requires linear time in the size of the map; many implementations will override this method.
-
get
public V get(java.lang.Object key)
This implementation iterates overentrySet()searching for an entry with the specified key. If such an entry is found, the entry's value is returned. If the iteration terminates without finding such an entry,nullis returned. Note that this implementation requires linear time in the size of the map; many implementations will override this method.
-
put
public V put(K key, V value)
This implementation always throws anUnsupportedOperationException.
-
remove
public V remove(java.lang.Object key)
This implementation iterates over
entrySet()searching for an entry with the specified key. If such an entry is found, its value is obtained with itsgetValueoperation, the entry is removed from the collection (and the backing map) with the iterator'sremoveoperation, and the saved value is returned. If the iteration terminates without finding such an entry,nullis returned. Note that this implementation requires linear time in the size of the map; many implementations will override this method.Note that this implementation throws an
UnsupportedOperationExceptionif theentrySetiterator does not support theremovemethod and this map contains a mapping for the specified key.
-
putAll
public void putAll(java.util.Map<? extends K,? extends V> m)
This implementation iterates over the specified map's
entrySet()collection, and calls this map'sputoperation once for each entry returned by the iteration.Note that this implementation throws an
UnsupportedOperationExceptionif this map does not support theputoperation and the specified map is nonempty.
-
clear
public void clear()
This implementation calls
entrySet().clear().Note that this implementation throws an
UnsupportedOperationExceptionif theentrySetdoes not support theclearoperation.
-
keySet
public java.util.Set<K> keySet()
This implementation returns a set that subclasses
AbstractSet. The subclass's iterator method returns a "wrapper object" over this map'sentrySet()iterator. Thesizemethod delegates to this map'ssizemethod and thecontainsmethod delegates to this map'scontainsKeymethod.The set is created the first time this method is called, and returned in response to all subsequent calls. No synchronization is performed, so there is a slight chance that multiple calls to this method will not all return the same set.
-
values
public java.util.Collection<V> values()
This implementation returns a collection that subclasses
AbstractCollection. The subclass's iterator method returns a "wrapper object" over this map'sentrySet()iterator. Thesizemethod delegates to this map'ssizemethod and thecontainsmethod delegates to this map'scontainsValuemethod.The collection is created the first time this method is called, and returned in response to all subsequent calls. No synchronization is performed, so there is a slight chance that multiple calls to this method will not all return the same collection.
-
equals
public boolean equals(java.lang.Object o)
Compares the specified object with this map for equality. Returns
trueif the given object is also a map and the two maps represent the same mappings. More formally, two mapsm1andm2represent the same mappings ifm1.entrySet().equals(m2.entrySet()). This ensures that theequalsmethod works properly across different implementations of theMapinterface.This implementation first checks if the specified object is this map; if so it returns
true. Then, it checks if the specified object is a map whose size is identical to the size of this map; if not, it returnsfalse. If so, it iterates over this map'sentrySetcollection, and checks that the specified map contains each mapping that this map contains. If the specified map fails to contain such a mapping,falseis returned. If the iteration completes,trueis returned.
-
hashCode
public int hashCode()
Returns the hash code value for this map. The hash code of a map is defined to be the sum of the hash codes of each entry in the map's
entrySet()view. This ensures thatm1.equals(m2)implies thatm1.hashCode()==m2.hashCode()for any two mapsm1andm2, as required by the general contract ofObject.hashCode().This implementation iterates over
entrySet(), callinghashCode()on each element (entry) in the set, and adding up the results.
-
toString
public java.lang.String toString()
Returns a string representation of this map. The string representation consists of a list of key-value mappings in the order returned by the map's
entrySetview's iterator, enclosed in braces ("{}"). Adjacent mappings are separated by the characters", "(comma and space). Each key-value mapping is rendered as the key followed by an equals sign ("=") followed by the associated value. Keys and values are converted to strings as byString.valueOf(Object).- Overrides:
toStringin classjava.lang.Object- Returns:
- a string representation of this map
-
clone
protected java.lang.Object clone() throws java.lang.CloneNotSupportedExceptionReturns a shallow copy of thisAbstractMapinstance: the keys and values themselves are not cloned.- Overrides:
clonein classjava.lang.Object- Returns:
- a shallow copy of this map
- Throws:
java.lang.CloneNotSupportedException
-
-