public boolean containsValue(final V val) { final byte[] states = this._states; final V[] vals = (V[]) this._values; if (null == val) { int i = vals.length; while (i-- > 0) { if (states[i] == 1 && val == vals[i]) { return true; } } } else { int i = vals.length; while (i-- > 0) { if (states[i] == 1 && (val == vals[i] || val.equals(vals[i]))) { return true; } } } return false; }