Name
IdentityHashMap<K,V>
Synopsis
This Map
implementation has a API that is very
similar to HashMap
, and uses an internal
hashtable, like HashMap
does. However, it behaves
differently from HashMap
in one very important
way. When testing two keys to see if they are equal,
HashMap
, LinkedHashMap
and
TreeMap
use the equals( )
method to determine whether the two objects are indistinguishable in
terms of their content or state. IdentityHashMap
is different: it uses the ==
operator to determine
whether the two key objects are identical—whether they are
exactly the same object. This one difference in how key equality is
tested has profound ramifications for the behavior of the
Map
. In most cases, the equality testing of a
HashMap
, LinkedHashMap
or
TreeMap
is the appropriate behavior, and you
should use one of those classes. For certain purposes, however, the
identity testing of IdentityHashMap
is what is
required.
Figure 16-27. java.util.IdentityHashMap<K,V>
public class IdentityHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Serializable, Cloneable { // Public Constructors public IdentityHashMap( ); public IdentityHashMap(int expectedMaxSize); public IdentityHashMap(Map<? extends K,? extends V> m); // Methods Implementing Map public void clear( ); public boolean containsKey(Object key); public boolean containsValue(Object value); public Set<Map.Entry<K,V>> entrySet( ); public boolean ...
Get Java in a Nutshell, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.