code: final void buildBloomFilterForBucket(int bucketInSegmentPos, MemorySegment bucket, HashPartition<BT, PT> p) {
  		final int count = bucket.getShort(bucketInSegmentPos + HEADER_COUNT_OFFSET);
  		if (count <= 0) {
  			return;
  		}
  
  		int[] hashCodes = new int[count];
  		// As the hashcode and bloom filter occupy same bytes, so we read all hashcode out at first and then write back to bloom filter.
  		for (int i = 0; i < count; i++) {
  			hashCodes[i] = bucket.getInt(bucketInSegmentPos + BUCKET_HEADER_LENGTH + i * HASH_CODE_LEN);
  		}
  		this.bloomFilter.setBitsLocation(bucket, bucketInSegmentPos + BUCKET_HEADER_LENGTH);
  		for (int hashCode : hashCodes) {
  			this.bloomFilter.addHash(hashCode);
  		}
  		buildBloomFilterForExtraOverflowSegments(bucketInSegmentPos, bucket, p);
  	}
docs: Set all the bucket memory except bucket header as the bit set of bloom filter, and use hash code of build records
  to build bloom filter.