// Version 4.0
private static class TableEntry<S, T>
{
   private S key;
   private T value;
   private States state; // Flags whether this entry is in the hash table
   private enum States {CURRENT, REMOVED} // Possible values of state
   
   private TableEntry(S searchKey, T dataValue)
   {
      key = searchKey;
      value = dataValue;
      state = States.CURRENT;
   } // end constructor

/* < The methods getKey, getValue, setValue, isIn, isRemoved, setToIn, 
     and setToRemoved are here. >
   . . . */

} // end TableEntry