in core/src/main/java/gnu/trove/THashMap.java [288:307]
public boolean retainEntries(TObjectObjectProcedure<K, V> procedure) {
Object[] keys = _set;
V[] values = _values;
stopCompactingOnRemove();
boolean modified = false;
try {
for (int i = keys.length; i-- > 0; ) {
if (keys[i] != null
&& keys[i] != REMOVED
&& !procedure.execute((K)keys[i], values[i])) {
removeAt(i);
modified = true;
}
}
}
finally {
startCompactingOnRemove(modified);
}
return modified;
}