android/guava/src/com/google/common/hash/BloomFilter.java
public static <T> BloomFilter<T> create(
      Funnel<? super T> funnel, long expectedInsertions, double fpp) {
    return create(funnel, expectedInsertions, fpp, BloomFilterStrategies.MURMUR128_MITZ_64);
  }
public static <T> BloomFilter<T> create(
      Funnel<? super T> funnel, long expectedInsertions, double fpp) {
    return create(funnel, expectedInsertions, fpp, BloomFilterStrategies.MURMUR128_MITZ_64);
  }
public static < T > BloomFilter < T > create ( Funnel < ? super T > funnel , long expectedInsertions , double fpp ) { return create ( funnel , expectedInsertions , fpp , BloomFilterStrategies . MURMUR128_MITZ_64 ) ; }
Creates a {@link BloomFilter} with the expected number of insertions and expected false
positive probability.

<p>Note that overflowing a {@code BloomFilter} with significantly more elements than specified,
will result in its saturation, and a sharp deterioration of its false positive probability.

<p>The constructed {@code BloomFilter} will be serializable if the provided {@code Funnel<T>}
is.

<p>It is recommended that the funnel be implemented as a Java enum. This has the benefit of
ensuring proper serialization and deserialization, which is important since {@link #equals}
also relies on object identity of funnels.

@param funnel the funnel of T's that the constructed {@code BloomFilter} will use
@param expectedInsertions the number of expected insertions to the constructed {@code
BloomFilter}; must be positive
@param fpp the desired false positive probability (must be positive and less than 1.0)
@return a {@code BloomFilter}
@since 19.0
Creates a { @link BloomFilter } with the expected number of insertions and expected false positive probability .