public int remove(Object key) {boolean hashedOk;int index, next, hash;int result;Object object;index = next = findIndex(key, keys);if (keys[index] != key) {return -1;}result = values[index];int length = keys.length;while (true) {next = (next + 2) % length;object = keys[next];if (object == null) {break;}hash = getModuloHash(object, length);hashedOk = hash > index;if (next < index) {hashedOk = hashedOk || (hash <= next);} else {hashedOk = hashedOk && (hash <= next);}if (!hashedOk) {keys[index] = object;values[index] = values[next];index = next;}}size--;keys[index] = null;values[index] = -1;return result;}

public int remove(object key){bool hashedOk;int index;int next;int hash;int result;object @object;index = next = findIndex(key, keys);if (keys[index] != key){return -1;}result = values[index];int length = keys.Length;while (true){next = (next + 2) % length;@object = keys[next];if (@object == null){break;}hash = getModuloHash(@object, length);hashedOk = hash > index;if (next < index){hashedOk = hashedOk || (hash <= next);}else{hashedOk = hashedOk && (hash <= next);}if (!hashedOk){keys[index] = @object;values[index] = values[next];index = next;}}size--;keys[index] = null;values[index] = -1;return result;}
