public int get(long key) {
        final int DEFAULT_ENTRY_VALUE = -1;

        int length = set.length;
        int hash = ((int) (key ^ (key >>> 32))) & 0x7fffffff;
        int index = hash % length;
        long setKey = set[index];

        if (setKey == 0) {
            return DEFAULT_ENTRY_VALUE;
        }

        if (setKey == key) {
            return values[index];
        }

        // indexRehashed
        int setLength = set.length;
        int probe = 1 + (hash % (setLength - 2));
        final int loopIndex = index;

        do {
            index -= probe;
            if (index < 0) {
                index += setLength;
            }
            setKey = set[index];

            if (setKey == 0) {
                return DEFAULT_ENTRY_VALUE;
            }

            if (key == set[index]) {
                return values[index];
            }
        } while (index != loopIndex);

        return DEFAULT_ENTRY_VALUE;
    }
Look until FREE slot or we start to loop
core/src/main/java/com/alibaba/fastjson2/internal/trove/map/hash/TLongIntHashMap.java