public boolean containsValue(final V val) {
   final byte[] states = this._states;
   final V[] vals = (V[]) this._values;
   if (null == val) {
     int i = vals.length;
     while (i-- > 0) {
       if (states[i] == 1 && val == vals[i]) {
         return true;
       }
     }
   } else {
     int i = vals.length;
     while (i-- > 0) {
       if (states[i] == 1 && (val == vals[i] || val.equals(vals[i]))) {
         return true;
       }
     }
   }
   return false;
 }