private List<E> snapshot() {
    List<E> list = Lists.newArrayListWithExpectedSize(size());
    for (Multiset.Entry<E> entry : entrySet()) {
      E element = entry.getElement();
      for (int i = entry.getCount(); i > 0; i--) {
        list.add(element);
      }
    }
    return list;
  }
private List<E> snapshot() {
    List<E> list = Lists.newArrayListWithExpectedSize(size());
    for (Multiset.Entry<E> entry : entrySet()) {
      E element = entry.getElement();
      for (int i = entry.getCount(); i > 0; i--) {
        list.add(element);
      }
    }
    return list;
  }
private List < E > snapshot ( ) { List < E > list = Lists . newArrayListWithExpectedSize ( size ( ) ) ; for ( Multiset . Entry < E > entry : entrySet ( ) ) { E element = entry . getElement ( ) ; for ( int i = entry . getCount ( ) ; i > 0 ; i -- ) { list . add ( element ) ; } } return list ; }
/*
We'd love to use 'new ArrayList(this)' or 'list.addAll(this)', but
either of these would recurse back to us again!
/ * We d love to use new ArrayList ( this ) or list . addAll ( this ) but either of these would recurse back to us again!