code: public int andCardinality(Container x) {
      if (this.isEmpty()) {
        return 0;
      } else if (x.isEmpty()) {
        return 0;
      } else {
        if (x instanceof ArrayContainer) {
          return andCardinality((ArrayContainer) x);
        } else if (x instanceof BitmapContainer) {
          return andCardinality((BitmapContainer) x);
        }
        return andCardinality((RunContainer) x);
      }
    }
docs: Computes the bitwise AND of this container with another (intersection). This container as well
  as the provided container are left unaffected.
  
  @param x other container
  @return aggregated container