/** * {@inheritDoc} */ @Override public int removeAll(final ObjectPredicate<? super KType> predicate) { final int before = this.size(); if (this.allocatedDefaultKey) { if (predicate.apply((null))) { this.allocatedDefaultKey = false; } } final KType[] keys = ((KType[])(this.keys)); for (int i = 0; i < keys.length;) { KType existing; if (!((existing = keys[i]) == null) && predicate.apply(existing)) { shiftConflictingKeys(i); // Shift, do not increment slot. } else { i++; } } return before - this.size(); }
/** * {@inheritDoc} */ @Override public int removeAll(final ObjectIntPredicate<? super KType> predicate) { final int before = this.size(); if (this.allocatedDefaultKey) { if (predicate.apply((null), this.allocatedDefaultKeyValue)) { this.allocatedDefaultKey = false; } } final KType[] keys = ((KType[])(this.keys)); final int[] values = ((this.values)); for (int i = 0; i < keys.length;) { KType existing; if (!((existing = keys[i]) == null) && predicate.apply(existing, values[i])) { shiftConflictingKeys(i); // Shift, do not increment slot. } else { i++; } } return before - this.size(); }
if (!((existing = keys[i]) == null) && other.contains(existing)) { shiftConflictingKeys(i);