private int shiftKeys(int pos) {
		// Shift entries with the same hash.
		int last, slot;
		for (;;) {
			pos = ((last = pos) + 1) & mask;
			while (used[pos]) {
				slot = MurmurHash3.murmurhash3_x86_32(key, pos * sliceLength, sliceLength) & mask;
				if (last <= pos ? last >= slot || slot > pos : last >= slot && slot > pos) break;
				pos = (pos + 1) & mask;
			}
			if (!used[pos]) break;
			copyKeys(pos, last);
		}
		used[last] = false;
		return last;
	}