int (String key, long keyHash, ImmutableZipEntry[] set) { // http://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/ int index = (int)((((int)keyHash & 0xffffffffL) * set.length) >>> 32); while (true) { ImmutableZipEntry found = set[index]; if (found == null) { return -index - 1; } else if (key.equals(found.name)) { return index; } else if (++index == set.length) { index = 0; } } }