java.util
public abstract class AbstractMap<K,V> extends Object implements Map<K,V>
entrySet
(usually via an
AbstractSet). To make it modifiable, also implement put
,
and have entrySet().iterator()
support remove
.
It is recommended that classes which extend this support at least the no-argument constructor, and a constructor which accepts another Map. Further methods in this class may be overridden if you have a more efficient implementation.
Since: 1.2
See Also: Map Collection HashMap LinkedHashMap TreeMap WeakHashMap IdentityHashMap
UNKNOWN: updated to 1.4
Nested Class Summary | |
---|---|
static class | AbstractMap.SimpleEntry<K,V>
A class which implements Map.Entry. |
static class | AbstractMap.SimpleImmutableEntry<K,V>
A class containing an immutable key and value. |
Constructor Summary | |
---|---|
protected | AbstractMap()
The main constructor, for use by subclasses. |
Method Summary | |
---|---|
void | clear()
Remove all entries from this Map (optional operation). |
protected Object | clone()
Create a shallow copy of this Map, no keys or values are copied. |
boolean | containsKey(Object key)
Returns true if this contains a mapping for the given key. |
boolean | containsValue(Object value)
Returns true if this contains at least one mapping with the given value.
|
abstract Set<Entry<K,V>> | entrySet()
Returns a set view of the mappings in this Map. |
boolean | equals(Object o)
Compares the specified object with this map for equality. |
V | get(Object key)
Returns the value mapped by the given key. |
int | hashCode()
Returns the hash code for this map. |
boolean | isEmpty()
Returns true if the map contains no mappings. |
Set<K> | keySet()
Returns a set view of this map's keys. |
V | put(K key, V value)
Associates the given key to the given value (optional operation). |
void | putAll(Map<? extends K,? extends V> m)
Copies all entries of the given map to this one (optional operation). |
V | remove(Object key)
Removes the mapping for this key if present (optional operation). |
int | size()
Returns the number of key-value mappings in the map. |
String | toString()
Returns a String representation of this map. |
Collection<V> | values()
Returns a collection or bag view of this map's values. |
AbstractMap.clear
unless you want an infinite loop.
Throws: UnsupportedOperationException if entrySet().clear()
does not support clearing.
See Also: clear
super.clone()
.
Returns: the shallow clone
Throws: CloneNotSupportedException if a subclass is not Cloneable
entrySet()
, returning true
if a match
is found, false
if the iteration ends. Many subclasses
can implement this more efficiently.
Parameters: key the key to search for
Returns: true if the map contains the key
Throws: NullPointerException if key is null
but the map
does not permit null keys
See Also: containsValue
entrySet()
, returning true
if a match
is found, false
if the iteration ends. A match is
defined as a value, v, where (value == null ? v == null :
value.equals(v))
. Subclasses are unlikely to implement
this more efficiently.
Parameters: value the value to search for
Returns: true if the map contains the value
See Also: containsKey
Iterator.remove
, Set.remove
,
removeAll
, retainAll
, and clear
.
Element addition is not supported via this set.
Returns: the entry set
See Also: Entry
true
if the other object is a Map with the same mappings,
that is,o instanceof Map && entrySet().equals(((Map) o).entrySet();
Parameters: o the object to be compared
Returns: true if the object equals this map
See Also: equals
null
if
there is no mapping. However, in Maps that accept null values, you
must rely on containsKey
to determine if a mapping exists.
This iteration takes linear time, searching entrySet().iterator() of
the key. Many implementations override this method.
Parameters: key the key to look up
Returns: the value associated with the key, or null if key not in map
Throws: NullPointerException if this map does not accept null keys
See Also: containsKey
Returns: the hash code
size() == 0
.
Returns: true if the map is empty
See Also: size
This implementation creates an AbstractSet, where the iterator wraps the entrySet iterator, size defers to the Map's size, and contains defers to the Map's containsKey. The set is created on first use, and returned on subsequent uses, although since no synchronization occurs, there is a slight possibility of creating two sets.
Returns: a Set view of the keys
See Also: iterator size containsKey values
null
values, a null return does not always
imply that the mapping was created.
Parameters: key the key to map value the value to be mapped
Returns: the previous value of the key, or null if there was no mapping
Throws: UnsupportedOperationException if the operation is not supported ClassCastException if the key or value is of the wrong type IllegalArgumentException if something about this key or value prevents it from existing in this map NullPointerException if the map forbids null keys or values
See Also: containsKey
put
,
so it is not supported if puts are not.
Parameters: m the mapping to load into this map
Throws: UnsupportedOperationException if the operation is not supported
by this map. ClassCastException if a key or value is of the wrong type for
adding to this map. IllegalArgumentException if something about a key or value
prevents it from existing in this map. NullPointerException if the map forbids null keys or values. NullPointerException if m
is null.
See Also: AbstractMap
remove
method.
It returns the result of getValue()
on the entry, if found,
or null if no entry is found. Note that maps which permit null values
may also return null if the key was removed. If the entrySet does not
support removal, this will also fail. This is O(n), so many
implementations override it for efficiency.
Parameters: key the key to remove
Returns: the value the key mapped to, or null if not present. Null may also be returned if null values are allowed in the map and the value of this mapping is null.
Throws: UnsupportedOperationException if deletion is unsupported
See Also: remove
entrySet().size()
.
Returns: the number of mappings
See Also: size
getKey() + "=" + getValue()
), separated by a comma and
space (", "), and surrounded by braces ('{' and '}'). This implementation
uses a StringBuffer and iterates over the entrySet to build the String.
Note that this can fail with an exception if underlying keys or
values complete abruptly in toString().
Returns: a String representation
See Also: Entry
This implementation creates an AbstractCollection, where the iterator wraps the entrySet iterator, size defers to the Map's size, and contains defers to the Map's containsValue. The collection is created on first use, and returned on subsequent uses, although since no synchronization occurs, there is a slight possibility of creating two collections.
Returns: a Collection view of the values
See Also: iterator size containsValue keySet