/** {@inheritDoc} */
 @Override
 public boolean equals(Object other) {
   if (!(other instanceof TByteShortMap)) {
     return false;
   }
   TByteShortMap that = (TByteShortMap) other;
   if (that.size() != this.size()) {
     return false;
   }
   short[] values = _values;
   byte[] states = _states;
   short this_no_entry_value = getNoEntryValue();
   short that_no_entry_value = that.getNoEntryValue();
   for (int i = values.length; i-- > 0; ) {
     if (states[i] == FULL) {
       byte key = _set[i];
       short that_value = that.get(key);
       short this_value = values[i];
       if ((this_value != that_value)
           && (this_value != this_no_entry_value)
           && (that_value != that_no_entry_value)) {
         return false;
       }
     }
   }
   return true;
 }