code: public MatchIterator get(long key, int hashCode) {
  		int bucket = hashCode & numBucketsMask;
  
  		int bucketOffset = bucket << 4;
  		MemorySegment segment = buckets[bucketOffset >>> segmentSizeBits];
  		int segOffset = bucketOffset & segmentSizeMask;
  
  		while (true) {
  			long address = segment.getLong(segOffset + 8);
  			if (address != INVALID_ADDRESS) {
  				if (segment.getLong(segOffset) == key) {
  					return valueIter(address);
  				} else {
  					bucket = (bucket + 1) & numBucketsMask;
  					if (segOffset + 16 < segmentSize) {
  						segOffset += 16;
  					} else {
  						bucketOffset = bucket << 4;
  						segOffset = bucketOffset & segmentSizeMask;
  						segment = buckets[bucketOffset >>> segmentSizeBits];
  					}
  				}
  			} else {
  				return valueIter(INVALID_ADDRESS);
  			}
  		}
  	}
docs: Returns an iterator for all the values for the given key, or null if no value found.