code: @SuppressWarnings({"cast", "unchecked"})
      public static <E> Weigher<? super Collection<E>> collection() {
          return (Weigher<Collection<E>>) (Weigher<?>) CollectionWeigher.INSTANCE;
      }
docs: A weigher where the value is a {@link Collection} and its weight is the
  number of elements. A map bounded with this weigher will evict when the
  total number of elements exceeds the capacity rather than the number of
  key-value pairs in the map.
  <p>
  A value with a weight of <tt>0</tt> will be rejected by the map. If a value
  with this weight can occur then the caller should eagerly evaluate the
  value and treat it as a removal operation. Alternatively, a custom weigher
  may be specified on the map to assign an empty value a positive weight.
  
  @param <E> The element type
  @return A weigher where each element takes one unit of capacity.