/**
  * Hash the specified keys.
  *
  * @param key1 first key
  * @param key2 second key
  * @param key3 third key
  * @param key4 fourth key
  * @return hash code for the specified keys
  */
 private int hash(final K1 key1, final K2 key2, final K3 key3, final K4 key4) {
   int h = 0;
   if (key1 != null) {
     h ^= key1.hashCode();
   }
   if (key2 != null) {
     h ^= key2.hashCode();
   }
   if (key3 != null) {
     h ^= key3.hashCode();
   }
   if (key4 != null) {
     h ^= key4.hashCode();
   }
   h += ~(h << 9);
   h ^= (h >>> 14);
   h += (h << 4);
   h ^= (h >>> 10);
   return h;
 }