Package org.jibx.util

Class StringIntSizedMap


  • public class StringIntSizedMap
    extends Object
    Fixed size hash map using String values as keys mapped to primitive int values.
    Author:
    Dennis M. Sosnoski
    • Field Detail

      • DEFAULT_FILL_FRACTION

        public static final double DEFAULT_FILL_FRACTION
        Default fill fraction for sizing of tables.
        See Also:
        Constant Field Values
      • DEFAULT_NOT_FOUND

        public static final int DEFAULT_NOT_FOUND
        Default value returned when key not found in table.
        See Also:
        Constant Field Values
      • m_arraySize

        protected final int m_arraySize
        Size of array used for keys.
      • m_keyTable

        protected final String[] m_keyTable
        Array of key table slots.
      • m_valueTable

        protected final int[] m_valueTable
        Array of value table slots.
      • m_notFoundValue

        protected final int m_notFoundValue
        Value returned when key not found in table.
      • m_hitOffset

        protected final int m_hitOffset
        Offset added (modulo table size) to slot number on collision.
    • Constructor Detail

      • StringIntSizedMap

        public StringIntSizedMap​(int count,
                                 double fill,
                                 int miss)
        Constructor with full specification.
        Parameters:
        count - number of values to assume in sizing of table
        fill - fraction fill for table (maximum of 0.7, to prevent excessive collisions)
        miss - value returned when key not found in table
      • StringIntSizedMap

        public StringIntSizedMap​(int count,
                                 int miss)
        Constructor with value count and miss value specified. Uses default fill fraction.
        Parameters:
        count - number of values to assume in initial sizing of table
        miss - value returned when key not found in table
      • StringIntSizedMap

        public StringIntSizedMap​(int count)
        Constructor with only value count specified. Uses default fill fraction and miss value.
        Parameters:
        count - number of values to assume in initial sizing of table
    • Method Detail

      • add

        public int add​(String key,
                       int value)
        Add an entry to the table. If the key is already present in the table, this replaces the existing value associated with the key.
        Parameters:
        key - key to be added to table (non-null)
        value - associated value for key
        Returns:
        value previously associated with key, or reserved not found value if key not previously present in table
      • containsKey

        public final boolean containsKey​(String key)
        Check if an entry is present in the table. This method is supplied to support the use of values matching the reserved not found value.
        Parameters:
        key - key for entry to be found
        Returns:
        true if key found in table, false if not
      • get

        public final int get​(String key)
        Find an entry in the table.
        Parameters:
        key - key for entry to be returned
        Returns:
        value for key, or reserved not found value if key not found
      • clear

        public void clear()
        Set the table to the empty state.