class BloomFilterAlt implements IFilter<E>, Serializable {

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final BloomFilterAlt<E> other = (BloomFilterAlt<E>) obj;        
        if (this.expectedNumberOfFilterElements != other.expectedNumberOfFilterElements) {
            return false;
        }
        if (this.k != other.k) {
            return false;
        }
        if (this.bitSetSize != other.bitSetSize) {
            return false;
        }
        if (this.bitset != other.bitset && (this.bitset == null || !this.bitset.equals(other.bitset))) {
            return false;
        }
        return true;
    }

    public  BloomFilterAlt(double c, int n, int k);
    public  BloomFilterAlt(int bitSetSize, int expectedNumberOElements);
    public  BloomFilterAlt(double falsePositiveProbability, int expectedNumberOfElements);
    public  BloomFilterAlt(int bitSetSize, int expectedNumberOfFilterElements, int actualNumberOfFilterElements, BitSet filterData);

}