public boolean forEachEntry(final TIntObjectProcedure<V> procedure) {
   final byte[] states = this._states;
   final int[] keys = this._set;
   final V[] values = (V[]) this._values;
   int i = keys.length;
   while (i-- > 0) {
     if (states[i] == 1 && !procedure.execute(keys[i], values[i])) {
       return false;
     }
   }
   return true;
 }
 public boolean retainEntries(final TIntObjectProcedure<V> procedure) {
   boolean modified = false;
   final byte[] states = this._states;
   final int[] keys = this._set;
   final V[] values = (V[]) this._values;
   this.tempDisableAutoCompaction();
   try {
     int i = keys.length;
     while (i-- > 0) {
       if (states[i] == 1 && !procedure.execute(keys[i], values[i])) {
         this.removeAt(i);
         modified = true;
       }
     }
   } finally {
     this.reenableAutoCompaction(true);
   }
   return modified;
 }