/** * 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; }