Class Overview
IdentityHashMap is a variant on HashMap which tests equality by reference
 instead of equality by value. Basically, keys and values are compared for
 equality by checking if their references are equal rather than by calling the
 "equals" function.
 
 Note: This class intentionally violates the general contract of Map's on comparing objects by their equals method.
 
 IdentityHashMap uses open addressing (linear probing in particular) for
 collision resolution. This is different from HashMap which uses Chaining.
 
 Like HashMap, IdentityHashMap is not thread safe, so access by multiple
 threads must be synchronized by an external mechanism such as
 Collections.synchronizedMap.
 
Summary
| Public Constructors | 
|---|
	 
    
        |  | IdentityHashMap() Creates an IdentityHashMap with default expected maximum size. | 
	 
    
        |  | IdentityHashMap(int maxSize) Creates an IdentityHashMap with the specified maximum size parameter. | 
	 
    
        |  | IdentityHashMap(Map<? extends K, ? extends V> map) Creates an IdentityHashMap using the given map as initial values. | 
| Public Methods | 
|---|
	 
    
        | void | clear() Removes all elements from this map, leaving it empty. | 
	 
    
        | Object | clone() Returns a new IdentityHashMap with the same mappings and size as this
 one. | 
	 
    
        | boolean | containsKey(Object key) Returns whether this map contains the specified key. | 
	 
    
        | boolean | containsValue(Object value) Returns whether this map contains the specified value. | 
	 
    
        | Set<Entry<K, V>> | entrySet() Returns a set containing all of the mappings in this map. | 
	 
    
        | boolean | equals(Object object) Compares this map with other objects. | 
	 
    
        | V | get(Object key) Returns the value of the mapping with the specified key. | 
	 
    
        | boolean | isEmpty() Returns whether this IdentityHashMap has no elements. | 
	 
    
        | Set<K> | keySet() Returns a set of the keys contained in this map. | 
	 
    
        | V | put(K key, V value) Maps the specified key to the specified value. | 
	 
    
        | void | putAll(Map<? extends K, ? extends V> map) Copies all the mappings in the specified map to this map. | 
	 
    
        | V | remove(Object key) Removes the mapping with the specified key from this map. | 
	 
    
        | int | size() Returns the number of mappings in this IdentityHashMap. | 
	 
    
        | Collection<V> | values() Returns a collection of the values contained in this map. | 
| [Expand] Inherited Methods | 
|---|
|  From class
  java.util.AbstractMap 
  
   
    
    
	 
    
        | void | clear() Removes all elements from this  Map, leaving it empty.
  This implementation calls entrySet().clear(). |  
        | Object | clone() Creates and returns a copy of this Object. |  
        | boolean | containsKey(Object key) Returns whether this  Map contains the specified key.
  This implementation iterates its key set, looking for a key that
 keyequals. |  
        | boolean | containsValue(Object value) Returns whether this  Map contains the specified value.
  This implementation iterates its entry set, looking for an entry with
 a value that valueequals. |  
        | abstract
            
            
            
            
            Set<Entry<K, V>> | entrySet() Returns a Setcontaining all of the mappings in thisMap. |  
        | boolean | equals(Object object) Compares this instance with the specified object and indicates if they
 are equal.
  This implementation first checks the structure of object. |  
        | V | get(Object key) Returns the value of the mapping with the specified key.
  This implementation iterates its entry set, looking for an entry with
 a key that keyequals. |  
        | int | hashCode() Returns an integer hash code for this object.
  This implementation iterates its entry set, summing the hashcodes of
 its entries. |  
        | boolean | isEmpty() Returns whether this map is empty.
  This implementation compares size()to 0. |  
        | Set<K> | keySet() Returns a set of the keys contained in this  Map.
  This implementation returns a view that calls through this to map. |  
        | V | put(K key, V value) Maps the specified key to the specified value.
  This base implementation throws UnsupportedOperationException. |  
        | void | putAll(Map<? extends K, ? extends V> map) Copies every mapping in the specified  Map to this  Map.
  This implementation iterates through map's entry set, callingput()for each. |  
        | V | remove(Object key) Removes a mapping with the specified key from this  Map.
  This implementation iterates its entry set, removing the entry with
 a key that keyequals. |  
        | int | size() Returns the number of mappings in this  Map.
  This implementation returns its entry set's size. |  
        | String | toString() Returns a string containing a concise, human-readable description of this
 object.
  This implementation composes a string by iterating its entry set. |  
        | Collection<V> | values() Returns a  Collection of the values contained in this  Map.
  This implementation returns a view that calls through this to map. |  | 
|  From class
  java.lang.Object 
  
   
    
    
	 
    
        | Object | clone() Creates and returns a copy of this Object. |  
        | boolean | equals(Object o) Compares this instance with the specified object and indicates if they
 are equal. |  
        | void | finalize() Invoked when the garbage collector has detected that this instance is no longer reachable. |  
        | final
            
            
            Class<?> | getClass() Returns the unique instance of  Class that represents this
 object's class. |  
        | int | hashCode() Returns an integer hash code for this object. |  
        | final
            
            
            void | notify() Causes a thread which is waiting on this object's monitor (by means of
 calling one of the wait()methods) to be woken up. |  
        | final
            
            
            void | notifyAll() Causes all threads which are waiting on this object's monitor (by means
 of calling one of the wait()methods) to be woken up. |  
        | String | toString() Returns a string containing a concise, human-readable description of this
 object. |  
        | final
            
            
            void | wait() Causes the calling thread to wait until another thread calls the notify()ornotifyAll()method of this object. |  
        | final
            
            
            void | wait(long millis, int nanos) Causes the calling thread to wait until another thread calls the notify()ornotifyAll()method of this object or until the
 specified timeout expires. |  
        | final
            
            
            void | wait(long millis) Causes the calling thread to wait until another thread calls the notify()ornotifyAll()method of this object or until the
 specified timeout expires. |  | 
|  From interface
  java.util.Map 
  
   
    
    
	 
    
        | abstract
            
            
            
            
            void | clear() Removes all elements from this Map, leaving it empty. |  
        | abstract
            
            
            
            
            boolean | containsKey(Object key) Returns whether this Mapcontains the specified key. |  
        | abstract
            
            
            
            
            boolean | containsValue(Object value) Returns whether this Mapcontains the specified value. |  
        | abstract
            
            
            
            
            Set<Entry<K, V>> | entrySet() Returns a Setcontaining all of the mappings in thisMap. |  
        | abstract
            
            
            
            
            boolean | equals(Object object) Compares the argument to the receiver, and returns trueif the
 specified object is aMapand bothMaps contain the same mappings. |  
        | abstract
            
            
            
            
            V | get(Object key) Returns the value of the mapping with the specified key. |  
        | abstract
            
            
            
            
            int | hashCode() Returns an integer hash code for the receiver. |  
        | abstract
            
            
            
            
            boolean | isEmpty() Returns whether this map is empty. |  
        | abstract
            
            
            
            
            Set<K> | keySet() Returns a set of the keys contained in this Map. |  
        | abstract
            
            
            
            
            V | put(K key, V value) Maps the specified key to the specified value. |  
        | abstract
            
            
            
            
            void | putAll(Map<? extends K, ? extends V> map) Copies every mapping in the specified Mapto thisMap. |  
        | abstract
            
            
            
            
            V | remove(Object key) Removes a mapping with the specified key from this Map. |  
        | abstract
            
            
            
            
            int | size() Returns the number of mappings in this Map. |  
        | abstract
            
            
            
            
            Collection<V> | values() Returns a Collectionof the values contained in thisMap. |  | 
 
Public Constructors
 
    
      
        public 
         
         
         
         
        
      
      IdentityHashMap
      ()
    
      
    
      
  Creates an IdentityHashMap with default expected maximum size.
 
 
 
    
      
        public 
         
         
         
         
        
      
      IdentityHashMap
      (int maxSize)
    
      
    
      
  Creates an IdentityHashMap with the specified maximum size parameter.
      Parameters
      
        
          | maxSize | The estimated maximum number of entries that will be put in
            this map. | 
      
   
     
 
 
    
      
        public 
         
         
         
         
        
      
      IdentityHashMap
      (Map<? extends K, ? extends V> map)
    
      
    
      
  Creates an IdentityHashMap using the given map as initial values.
      Parameters
      
        
          | map | A map of (key,value) pairs to copy into the IdentityHashMap. | 
      
   
     
 
Public Methods
 
    
      
        public 
         
         
         
         
        void
      
      clear
      ()
    
      
    
      
  Removes all elements from this map, leaving it empty.
 
 
 
    
      
        public 
         
         
         
         
        Object
      
      clone
      ()
    
      
    
      
  Returns a new IdentityHashMap with the same mappings and size as this
 one.
      Returns
      - a shallow copy of this IdentityHashMap.
 
  
     
 
 
    
      
        public 
         
         
         
         
        boolean
      
      containsKey
      (Object key)
    
      
    
      
  Returns whether this map contains the specified key.
      Parameters
      
        
          | key | the key to search for. | 
      
   
  
      Returns
      - trueif this map contains the specified key,- falseotherwise.
 
     
 
 
    
      
        public 
         
         
         
         
        boolean
      
      containsValue
      (Object value)
    
      
    
      
  Returns whether this map contains the specified value.
      Parameters
      
        
          | value | the value to search for. | 
      
   
  
      Returns
      - trueif this map contains the specified value,- falseotherwise.
 
     
 
 
    
      
        public 
         
         
         
         
        Set<Entry<K, V>>
      
      entrySet
      ()
    
      
    
      
  Returns a set containing all of the mappings in this map. Each mapping is
 an instance of Map.Entry. As the set is backed by this map,
 changes in one will be reflected in the other.
 
 
 
    
      
        public 
         
         
         
         
        boolean
      
      equals
      (Object object)
    
      
    
      
  Compares this map with other objects. This map is equal to another map is
 it represents the same set of mappings. With this map, two mappings are
 the same if both the key and the value are equal by reference. When
 compared with a map that is not an IdentityHashMap, the equals method is
 neither necessarily symmetric (a.equals(b) implies b.equals(a)) nor
 transitive (a.equals(b) and b.equals(c) implies a.equals(c)).
      Parameters
      
        
          | object | the object to compare to. | 
      
   
  
      Returns
      - whether the argument object is equal to this object.
 
     
 
 
    
      
        public 
         
         
         
         
        V
      
      get
      (Object key)
    
      
    
      
  Returns the value of the mapping with the specified key.
      Returns
      - the value of the mapping with the specified key.
 
     
 
 
    
      
        public 
         
         
         
         
        boolean
      
      isEmpty
      ()
    
      
    
      
  Returns whether this IdentityHashMap has no elements.
      Returns
      - trueif this IdentityHashMap has no elements,- falseotherwise.
 
  
     
 
 
    
      
        public 
         
         
         
         
        Set<K>
      
      keySet
      ()
    
      
    
      
  Returns a set of the keys contained in this map. The set is backed by
 this map so changes to one are reflected by the other. The set does not
 support adding.
 
 
 
    
      
        public 
         
         
         
         
        V
      
      put
      (K key, V value)
    
      
    
      
  Maps the specified key to the specified value.
      Parameters
      
        
          | key | the key. | 
        
          | value | the value. | 
      
   
  
      Returns
      - the value of any previous mapping with the specified key or
         nullif there was no such mapping.
 
     
 
 
    
      
        public 
         
         
         
         
        void
      
      putAll
      (Map<? extends K, ? extends V> map)
    
      
    
      
  Copies all the mappings in the specified map to this map. These mappings
 will replace all mappings that this map had for any of the keys currently
 in the given map.
      Parameters
      
        
          | map | the map to copy mappings from. | 
      
   
  
     
 
 
    
      
        public 
         
         
         
         
        V
      
      remove
      (Object key)
    
      
    
      
  Removes the mapping with the specified key from this map.
      Parameters
      
        
          | key | the key of the mapping to remove. | 
      
   
  
      Returns
      - the value of the removed mapping, or nullif no mapping
         for the specified key was found.
 
     
 
 
    
      
        public 
         
         
         
         
        int
      
      size
      ()
    
      
    
      
  Returns the number of mappings in this IdentityHashMap.
      Returns
      - the number of mappings in this IdentityHashMap.
 
     
 
 
    
      
    
      
  Returns a collection of the values contained in this map. The collection
 is backed by this map so changes to one are reflected by the other. The
 collection supports remove, removeAll, retainAll and clear operations,
 and it does not support add or addAll operations.
 
 This method returns a collection which is the subclass of
 AbstractCollection. The iterator method of this subclass returns a
 "wrapper object" over the iterator of map's entrySet(). The size
 method wraps the map's size method and the contains method wraps
 the map's containsValue method.
 
 The collection is created when this method is called for the first time
 and returned in response to all subsequent calls. This method may return
 different collections when multiple concurrent calls occur, since no
 synchronization is performed.
      Returns
      - a collection of the values contained in this map.