Class ShortKeyIndexer

  • All Implemented Interfaces:
    java.io.Serializable

    public class ShortKeyIndexer
    extends java.lang.Object
    implements java.io.Serializable
    This class converts arbitrary short keys into compacted short indexes suitable for use as indexes into an array or table. Whenever a new key is added, the smallest unused index is allocated and associated with that key. Basically hashes the keys into linked lists using the ShortListIndexer class, where all values in a list have the same hashcode. Does most of the work in implementing a separate chaining version of a hashtable - the only thing missing is the values which are stored in the individual implementations of the various hashtables.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ShortKeyIndexer()
      Constructs a ShortKeyIndexer with a default capacity.
      ShortKeyIndexer​(short capacity)
      Constructs a ShortKeyIndexer with a given initial capacity.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Remove all keys.
      short get​(short key)
      Returns the index for the given key, or -1 if key is not in the table.
      short getCapacity()
      Returns the current size of the key table.
      short[] getKeys()
      Returns an array containing all the keys stored in this object.
      short getSize()
      Returns the number of keys stored in the table.
      short put​(short key)
      Returns an index that will always be associated to the given key as long as the key remains in the table.
      short remove​(short key)
      Removes the key from the table.
      • Methods inherited from class java.lang.Object

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

      • ShortKeyIndexer

        public ShortKeyIndexer()
        Constructs a ShortKeyIndexer with a default capacity.
      • ShortKeyIndexer

        public ShortKeyIndexer​(short capacity)
        Constructs a ShortKeyIndexer with a given initial capacity.
        Parameters:
        capacity - the initial capacity.
    • Method Detail

      • put

        public short put​(short key)
        Returns an index that will always be associated to the given key as long as the key remains in the table. If the key already exists, then the index where that key is stored is returned. If the key is new, then a new index is allocated, the key is stored at that index, and the new index is returned.
        Parameters:
        key - the key to be stored.
        Returns:
        index for key, or -1 if there was no room to put the key.
        Throws:
        java.lang.IndexOutOfBoundsException - thrown if this object is at maximum capacity.
      • get

        public short get​(short key)
        Returns the index for the given key, or -1 if key is not in the table.
        Parameters:
        key - the key for which to find an index.
      • remove

        public short remove​(short key)
        Removes the key from the table.
        Parameters:
        key - the key to remove.
        Returns:
        index of the key if the key was found, -1 if key did not exist in the table
      • getSize

        public short getSize()
        Returns the number of keys stored in the table.
      • getCapacity

        public short getCapacity()
        Returns the current size of the key table.
      • clear

        public void clear()
        Remove all keys.
      • getKeys

        public short[] getKeys()
        Returns an array containing all the keys stored in this object.