Class OpenHashMap<K,V>

All Implemented Interfaces:
Map<K,V>

public class OpenHashMap<K,V> extends AbstractKeyBasedMap<K,V>
An implementation of Map that is optimized for memory footprint. Specifically, instead of instantiating an "Entry" object for each element (as the HashMap does, which references those entries in a linked list fashion with the head of the linked list stored in the hash bucket array, this implementation stores its elements using an open hashing algorithm, i.e. the keys are stored directly in the hash bucket array and the values are stored in a corresponding values array.

This implementation is explicitly NOT thread-safe.

Since:
12.2.1
Author:
cp 2013.01.30
  • Constructor Details

    • OpenHashMap

      public OpenHashMap()
      Default constructor.
    • OpenHashMap

      public OpenHashMap(int initialCapacity)
      Create a OpenHashMap pre-sized to hold the specified number of entries.
      Parameters:
      initialCapacity - the initial capacity requirement for the hash map
    • OpenHashMap

      public OpenHashMap(Map map)
      Create a OpenHashMap that will initially contain the contents of the passed Map. In other words, this is a "copy constructor".
      Parameters:
      map - the Collection whose contents this
  • Method Details

    • size

      public int size()
      Returns the number of key-value mappings in this map.
      Specified by:
      size in interface Map<K,V>
      Overrides:
      size in class AbstractKeyBasedMap<K,V>
      Returns:
      the number of key-value mappings in this map
    • containsKey

      public boolean containsKey(Object oKey)
      Returns true if this map contains a mapping for the specified key.
      Specified by:
      containsKey in interface Map<K,V>
      Overrides:
      containsKey in class AbstractKeyBasedMap<K,V>
      Returns:
      true if this map contains a mapping for the specified key, false otherwise.
    • get

      public V get(Object oKey)
      Returns the value to which this map maps the specified key.
      Specified by:
      get in interface Map<K,V>
      Specified by:
      get in class AbstractKeyBasedMap<K,V>
      Parameters:
      oKey - the key object
      Returns:
      the value to which this map maps the specified key, or null if the map contains no mapping for this key
    • put

      public Object put(Object oKey, Object oValue)
      Associates the specified value with the specified key in this map.
      Specified by:
      put in interface Map<K,V>
      Overrides:
      put in class AbstractKeyBasedMap<K,V>
      Parameters:
      oKey - key with which the specified value is to be associated
      oValue - value to be associated with the specified key
      Returns:
      previous value associated with specified key, or null if there was no mapping for key
    • remove

      public V remove(Object oKey)
      Removes the mapping for this key from this map if present. Expensive: updates both the underlying cache and the local cache.
      Specified by:
      remove in interface Map<K,V>
      Overrides:
      remove in class AbstractKeyBasedMap<K,V>
      Parameters:
      oKey - key whose mapping is to be removed from the map
      Returns:
      previous value associated with specified key, or null if there was no mapping for key. A null return can also indicate that the map previously associated null with the specified key, if the implementation supports null values.
    • clear

      public void clear()
      Clear all key/value mappings.
      Specified by:
      clear in interface Map<K,V>
      Overrides:
      clear in class AbstractKeyBasedMap<K,V>
    • instantiateKeySet

      protected Set instantiateKeySet()
      Factory pattern: Create a Set that represents the keys in the Map
      Overrides:
      instantiateKeySet in class AbstractKeyBasedMap<K,V>
      Returns:
      a new instance of Set that represents the keys in the Map
    • instantiateEntrySet

      protected Set instantiateEntrySet()
      Factory pattern: Create a Set that represents the entries in the Map.
      Overrides:
      instantiateEntrySet in class AbstractKeyBasedMap<K,V>
      Returns:
      a new instance of Set that represents the entries in the Map
    • iterateKeys

      protected Iterator iterateKeys()
      Create an iterator over the keys in this Map. The Iterator must support remove() if the Map supports removal.
      Specified by:
      iterateKeys in class AbstractKeyBasedMap<K,V>
      Returns:
      a new instance of an Iterator over the keys in this Map