Class MultipleValueMap


  • public class MultipleValueMap
    extends java.lang.Object
    Map supporting multiple values for a single key. The multiple value concept doesn't really fit with the standard collections idea of a map, so this provides its own variation of a map interface rather than extend the standard one.
    Author:
    Dennis M. Sosnoski
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.HashMap m_backingMap
      Backing map from key to value or array of values.
      private java.lang.Object m_lastKey
      Last lookup key (null if none, or if value changed).
      private java.lang.Object m_lastValue
      Last lookup value (null if none, or if value changed).
      private int m_valueCount
      Actual number of values (not keys) present in map.
    • Constructor Summary

      Constructors 
      Constructor Description
      MultipleValueMap()
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(java.lang.Object key, java.lang.Object value)
      Add value for key.
      void clear()
      Clear all entries.
      boolean containsKey​(java.lang.Object key)
      Check key present in map.
      java.util.ArrayList extract​(java.lang.Object key)
      Extract all values for key.
      java.util.ArrayList get​(java.lang.Object key)
      Get all values for key.
      java.lang.Object get​(java.lang.Object key, int index)
      Get indexed value for key.
      int getCount​(java.lang.Object key)
      Get number of values present for key.
      private java.lang.Object getMapped​(java.lang.Object key)
      Internal cached lookup.
      boolean isEmpty()
      Check if map is empty.
      java.util.Set keySet()
      Get key set.
      int keySize()
      Get number of keys.
      java.util.Iterator multipleIterator()
      Get iterator over only the multiple-valued keys present in the map.
      int valueSize()
      Get number of values.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • m_backingMap

        private final java.util.HashMap m_backingMap
        Backing map from key to value or array of values.
      • m_valueCount

        private int m_valueCount
        Actual number of values (not keys) present in map.
      • m_lastKey

        private java.lang.Object m_lastKey
        Last lookup key (null if none, or if value changed).
      • m_lastValue

        private java.lang.Object m_lastValue
        Last lookup value (null if none, or if value changed).
    • Constructor Detail

      • MultipleValueMap

        public MultipleValueMap()
        Constructor.
    • Method Detail

      • getMapped

        private java.lang.Object getMapped​(java.lang.Object key)
        Internal cached lookup.
        Parameters:
        key -
        Returns:
        value
      • clear

        public void clear()
        Clear all entries.
      • getCount

        public int getCount​(java.lang.Object key)
        Get number of values present for key.
        Parameters:
        key -
        Returns:
        value count
      • get

        public java.lang.Object get​(java.lang.Object key,
                                    int index)
        Get indexed value for key.
        Parameters:
        key -
        index -
        Returns:
        value
      • add

        public void add​(java.lang.Object key,
                        java.lang.Object value)
        Add value for key.
        Parameters:
        key -
        value -
      • get

        public java.util.ArrayList get​(java.lang.Object key)
        Get all values for key. This returns the value(s) from the map and returns them in the form of a list.
        Parameters:
        key -
        Returns:
        list of values
      • extract

        public java.util.ArrayList extract​(java.lang.Object key)
        Extract all values for key. This removes the value(s) from the map and returns them in the form of a list.
        Parameters:
        key -
        Returns:
        prior list of values
      • keySize

        public int keySize()
        Get number of keys.
        Returns:
        key count
      • valueSize

        public int valueSize()
        Get number of values.
        Returns:
        value count
      • multipleIterator

        public java.util.Iterator multipleIterator()
        Get iterator over only the multiple-valued keys present in the map.
        Returns:
        iterator
      • containsKey

        public boolean containsKey​(java.lang.Object key)
        Check key present in map.
        Parameters:
        key -
        Returns:
        key present flag
      • isEmpty

        public boolean isEmpty()
        Check if map is empty.
        Returns:
        empty flag
      • keySet

        public java.util.Set keySet()
        Get key set.
        Returns:
        set of keys