@SuppressWarnings("FinalParameters") void compactChain(int deleteIndex) { final Object[] values = this.values; final int mask = values.length - 1; int index = deleteIndex; while (true) { index = next(index, mask); if (values[index] == MISSING_VALUE) { return; } final int hash = values[index].hashCode() & mask; if ((index < hash && (hash <= deleteIndex || deleteIndex <= index)) || (hash <= deleteIndex && deleteIndex <= index)) { values[deleteIndex] = values[index]; values[index] = MISSING_VALUE; deleteIndex = index; } } }
/** * {@inheritDoc} */ public boolean contains(final Object value) { final Object[] values = this.values; final int mask = values.length - 1; int index = value.hashCode() & mask; while (values[index] != MISSING_VALUE) { if (values[index].equals(value)) { return true; } index = next(index, mask); } return false; }
/** * @param value the value to remove * @return true if the value was present, false otherwise */ public boolean remove(final Object value) { final Object[] values = this.values; final int mask = values.length - 1; int index = value.hashCode() & mask; while (values[index] != MISSING_VALUE) { if (values[index].equals(value)) { values[index] = MISSING_VALUE; compactChain(index); size--; return true; } index = next(index, mask); } return false; }
index = next(index, mask);
void compactChain(int deleteIndex) { final Object[] values = this.values; final int mask = values.length - 1; int index = deleteIndex; while (true) { index = next(index, mask); if (values[index] == MISSING_VALUE) { return; } final int hash = values[index].hashCode() & mask; if ((index < hash && (hash <= deleteIndex || deleteIndex <= index)) || (hash <= deleteIndex && deleteIndex <= index)) { values[deleteIndex] = values[index]; values[index] = MISSING_VALUE; deleteIndex = index; } } }
@SuppressWarnings("FinalParameters") void compactChain(int deleteIndex) { final Object[] values = this.values; final int mask = values.length - 1; int index = deleteIndex; while (true) { index = next(index, mask); if (values[index] == MISSING_VALUE) { return; } final int hash = values[index].hashCode() & mask; if ((index < hash && (hash <= deleteIndex || deleteIndex <= index)) || (hash <= deleteIndex && deleteIndex <= index)) { values[deleteIndex] = values[index]; values[index] = MISSING_VALUE; deleteIndex = index; } } }
/** * {@inheritDoc} */ public boolean contains(final Object value) { final Object[] values = this.values; final int mask = values.length - 1; int index = value.hashCode() & mask; while (values[index] != MISSING_VALUE) { if (values[index].equals(value)) { return true; } index = next(index, mask); } return false; }
/** * {@inheritDoc} */ public boolean contains(final Object value) { final Object[] values = this.values; final int mask = values.length - 1; int index = value.hashCode() & mask; while (values[index] != MISSING_VALUE) { if (values[index].equals(value)) { return true; } index = next(index, mask); } return false; }
/** * @param value the value to remove * @return true if the value was present, false otherwise */ public boolean remove(final Object value) { final Object[] values = this.values; final int mask = values.length - 1; int index = value.hashCode() & mask; while (values[index] != MISSING_VALUE) { if (values[index].equals(value)) { values[index] = MISSING_VALUE; compactChain(index); size--; return true; } index = next(index, mask); } return false; }
/** * @param value the value to remove * @return true if the value was present, false otherwise */ public boolean remove(final Object value) { final Object[] values = this.values; final int mask = values.length - 1; int index = value.hashCode() & mask; while (values[index] != MISSING_VALUE) { if (values[index].equals(value)) { values[index] = MISSING_VALUE; compactChain(index); size--; return true; } index = next(index, mask); } return false; }
index = next(index, mask);
index = next(index, mask);