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