Name
AbstractMap<K,V>
Synopsis
This
abstract class is a partial implementation of the
Map interface that makes it easy to define simple
custom Map implementations. To define an
unmodifiable map, subclass AbstractMap and
override the entrySet( ) method so that it returns
a set of Map.Entry objects. (Note that you must
also implement Map.Entry, of course.) The returned
set should not support add( ) or remove(
), and its iterator should not support remove(
). In order to define a modifiable Map,
you must additionally override the put( ) method
and provide support for the remove( ) method of
the iterator returned by entrySet( ).iterator( ).
In addition, it is conventional that all Map
implementations define two constructors: one that accepts no
arguments and another that accepts a Map of
initial mappings.
AbstractMap defines all Map
methods in terms of its entrySet( ) and
put( ) methods and the remove(
) method of the entry set iterator. Note, however, that the
implementation is based on a linear search of the
Set returned by entrySet( ) and
is not efficient when the Map contains more than a
handful of entries. Some subclasses may want to override additional
AbstractMap methods to improve performance.
HashMap and TreeMap use
different algorithms are are substantially more efficient.
Figure 16-3. java.util.AbstractMap<K,V>
public abstract class AbstractMap<K,V> implements Map<K,V> { ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access