
com.groupbyinc.flux.next.common.carrotsearch.hppc.HashOrderMixingStrategy Maven / Gradle / Ivy
The newest version!
package com.carrotsearch.hppc;
/**
* Hash order mixing strategy implementations should provide an, ideally,
* random integer that is later XORed with the hash of a given key before
* the slot lookup in associative arrays.
*
*
* Why good hash mixing is important is explained in the
* differences between hash
* and scatter sets.
*
*
* @see ObjectHashSet#hashKey
* @see ObjectObjectHashMap#hashKey
*
* @see HashOrderMixing
*/
public interface HashOrderMixingStrategy extends Cloneable {
/**
* A new key mixer value. The value can be derived from the new buffer size of the
* container, but preferably should be random and unique.
*
* @param newContainerBufferSize
*/
public int newKeyMixer(int newContainerBufferSize);
/**
* @return Return a clone of this strategy. This should use a different mixing
* because cloned containers should have a different hash ordering.
*/
public HashOrderMixingStrategy clone();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy