
stream.counter.hashing.SimpleHashFactory Maven / Gradle / Ivy
package stream.counter.hashing;
import java.io.Serializable;
import java.util.Random;
/**
*
*
* @author Marcin Skirzynski
*/
public class SimpleHashFactory implements HashFunctionFactory{
/** The unique class ID */
private static final long serialVersionUID = 1893281035106218246L;
private Random random = new Random();
@Override
public HashFunction build(final long domain) {
return new SimpleHash(domain);
}
public class SimpleHash implements HashFunction, Serializable {
/** The unique class ID */
private static final long serialVersionUID = -946774756839033767L;
private long domain;
public SimpleHash(long domain) {
this.domain = domain;
}
@Override
public long computeHash(T x) {
return Math.abs((x.hashCode()*random.nextInt())%domain);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy