
Untitled
By: a guest on
Sep 11th, 2012 | syntax:
None | size: 1.26 KB | hits: 8 | expires: Never
//==============================================================================
package bloom;
//==============================================================================
public class Bloom
{
private long[] bits;
public Bloom ()
{
bits = new long[67108864];
}
public static void main (String[] args)
{
Bloom bloom = new Bloom ();
bloom.add ("vienas");
bloom.add ("du");
System.out.println (bloom.has ("vienas"));
System.out.println (bloom.has ("du"));
System.out.println (bloom.has ("trys"));
}
private boolean has (String object)
{
int index = object.hashCode ();
long positiveIndex = index + 2147483648L;
long element = bits[(int) (positiveIndex / 64)];
int bit = (int) (positiveIndex % 64);
return 1 == ((element >>> bit) & 1);
}
private void add (String object)
{
int index = object.hashCode ();
long positiveIndex = index + 2147483648L;
int elementIndex = (int) (positiveIndex / 64);
int bit = (int) (positiveIndex % 64);
int valueToAdd = 1 << bit;
bits[elementIndex] |= valueToAdd;
}
}
//==============================================================================