@Override
    @Nullable
    public V get(@Nullable Object key) {
        Reference<K, V> ref = getReference(key, Restructure.WHEN_NECESSARY);
        Entry<K, V> entry = (ref != null ? ref.get() : null);
        return (entry != null ? entry.getValue() : null);
    }
Get the hash for a given object, apply an additional hash function to reduce
collisions. This implementation uses the same Wang/Jenkins algorithm as
{link ConcurrentHashMap}. Subclasses can override to provide alternative hashing.

@param o the object to hash (may be null)
@return the resulting hash code
analyzer/src/main/java/nl/basjes/parse/useragent/utils/springframework/util/ConcurrentReferenceHashMap.java