code: public int size() {
  
      double filterSize = getFilterSize(); // m
      double numberOfBitsSetToOne = countNumberOfBitsSetToOne(); // X
      double numberOfHashFunctions = getHashFunctionCount(null); // k
      double estimatedSize = (filterSize / numberOfHashFunctions) * Math.log(1 - (numberOfBitsSetToOne / filterSize));
  
      return Double.valueOf(Math.abs(Math.round(estimatedSize))).intValue();
    }
docs: Determines the approximate, estimated size of this {@link BloomFilter}.
  
  The estimated size is approximately the number of elements that have been added to this {@link BloomFilter},
  calculated as...
  
  n* = - m/n * log(1 - X/m)
  
  n* is an estimate of the number of elements in this filter
  m is the length (size) of this filter
  k is the number of hash functions
  X is the number of bits set to one
  
  @return an integer value with the size of this {@link BloomFilter} indicated as the estimated number of elements
  that have possibly been added to this {@link BloomFilter}.