/** {@inheritDoc} */ public boolean forEachEntry(TLongLongProcedure procedure) { byte[] states = _states; long[] keys = _set; long[] values = _values; for (int i = keys.length; i-- > 0; ) { if (states[i] == FULL && !procedure.execute(keys[i], values[i])) { return false; } } return true; }
/** {@inheritDoc} */ public boolean retainEntries(TLongLongProcedure procedure) { boolean modified = false; byte[] states = _states; long[] keys = _set; long[] values = _values; // Temporarily disable compaction. This is a fix for bug #1738760 tempDisableAutoCompaction(); try { for (int i = keys.length; i-- > 0; ) { if (states[i] == FULL && !procedure.execute(keys[i], values[i])) { removeAt(i); modified = true; } } } finally { reenableAutoCompaction(true); } return modified; }