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