code: public int andCardinality(MappeableContainer x) {
      if (this.isEmpty()) {
        return 0;
      } else if (x.isEmpty()) {
        return 0;
      } else {
        if (x instanceof MappeableArrayContainer) {
          return andCardinality((MappeableArrayContainer) x);
        } else if (x instanceof MappeableBitmapContainer) {
          return andCardinality((MappeableBitmapContainer) x);
        }
        return andCardinality((MappeableRunContainer) 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