/**
  * Executes <tt>procedure</tt> for each value in the map.
  *
  * @param procedure a <code>TObjectProcedure</code> value
  * @return false if the loop over the values terminated because the procedure returned false for
  *     some value.
  */
 public boolean forEachValue(TObjectProcedure<V> procedure) {
   byte[] states = _states;
   V[] values = _values;
   for (int i = values.length; i-- > 0; ) {
     if (states[i] == FULL && !procedure.execute(values[i])) {
       return false;
     }
   }
   return true;
 }
 public boolean forEachValue(final TObjectProcedure<V> procedure) {
   final byte[] states = this._states;
   final V[] values = (V[]) this._values;
   int i = values.length;
   while (i-- > 0) {
     if (states[i] == 1 && !procedure.execute(values[i])) {
       return false;
     }
   }
   return true;
 }