android/guava/src/com/google/common/hash/BloomFilter.java
public void putAll(BloomFilter<T> that) {
    checkNotNull(that);
    checkArgument(this != that, "Cannot combine a BloomFilter with itself.");
    checkArgument(
        this.numHashFunctions == that.numHashFunctions,
        "BloomFilters must have the same number of hash functions (%s != %s)",
        this.numHashFunctions,
        that.numHashFunctions);
    checkArgument(
        this.bitSize() == that.bitSize(),
        "BloomFilters must have the same size underlying bit arrays (%s != %s)",
        this.bitSize(),
        that.bitSize());
    checkArgument(
        this.strategy.equals(that.strategy),
        "BloomFilters must have equal strategies (%s != %s)",
        this.strategy,
        that.strategy);
    checkArgument(
        this.funnel.equals(that.funnel),
        "BloomFilters must have equal funnels (%s != %s)",
        this.funnel,
        that.funnel);
    this.bits.putAll(that.bits);
  }
public void putAll(BloomFilter<T> that) {
    checkNotNull(that);
    checkArgument(this != that, "Cannot combine a BloomFilter with itself.");
    checkArgument(
        this.numHashFunctions == that.numHashFunctions,
        "BloomFilters must have the same number of hash functions (%s != %s)",
        this.numHashFunctions,
        that.numHashFunctions);
    checkArgument(
        this.bitSize() == that.bitSize(),
        "BloomFilters must have the same size underlying bit arrays (%s != %s)",
        this.bitSize(),
        that.bitSize());
    checkArgument(
        this.strategy.equals(that.strategy),
        "BloomFilters must have equal strategies (%s != %s)",
        this.strategy,
        that.strategy);
    checkArgument(
        this.funnel.equals(that.funnel),
        "BloomFilters must have equal funnels (%s != %s)",
        this.funnel,
        that.funnel);
    this.bits.putAll(that.bits);
  }
public void putAll ( BloomFilter < T > that ) { checkNotNull ( that ) ; checkArgument ( this != that , "Cannot combine a BloomFilter with itself." ) ; checkArgument ( this . numHashFunctions == that . numHashFunctions , "BloomFilters must have the same number of hash functions (%s != %s)" , this . numHashFunctions , that . numHashFunctions ) ; checkArgument ( this . bitSize ( ) == that . bitSize ( ) , "BloomFilters must have the same size underlying bit arrays (%s != %s)" , this . bitSize ( ) , that . bitSize ( ) ) ; checkArgument ( this . strategy . equals ( that . strategy ) , "BloomFilters must have equal strategies (%s != %s)" , this . strategy , that . strategy ) ; checkArgument ( this . funnel . equals ( that . funnel ) , "BloomFilters must have equal funnels (%s != %s)" , this . funnel , that . funnel ) ; this . bits . putAll ( that . bits ) ; }
Combines this Bloom filter with another Bloom filter by performing a bitwise OR of the
underlying data. The mutations happen to <b>this</b> instance. Callers must ensure the Bloom
filters are appropriately sized to avoid saturating them.

@param that The Bloom filter to combine this Bloom filter with. It is not mutated.
@throws IllegalArgumentException if {@code isCompatible(that) == false}
@since 15.0
Combines this Bloom filter with another Bloom filter by performing a bitwise OR of the underlying data . The mutations happen to <b > this< / b > instance . Callers must ensure the Bloom filters are appropriately sized to avoid saturating them .