public static <E> Counter<E> product(Counter<E> c1, Counter<E> c2) {
    Counter<E> result = c1.getFactory().create();
    for (E key : Sets.intersection(c1.keySet(), c2.keySet())) {
      result.setCount(key, c1.getCount(key) * c2.getCount(key));
    }
    return result;
  }
public static < E > Counter < E > product ( Counter < E > c1 , Counter < E > c2 ) { Counter < E > result = c1 . getFactory ( ) . create ( ) ; for ( E key : Sets . intersection ( c1 . keySet ( ) , c2 . keySet ( ) ) ) { result . setCount ( key , c1 . getCount ( key ) * c2 . getCount ( key ) ) ; } return result ; }
Returns the product of c1 and c2.

@return The product of c1 and c2.