/guava/guava/src/com/google/common/collect/AbstractMapBasedMultiset.java
boolean canRemove; int occurrencesLeft;@CheckForNull Map.Entry<E, Count> currentEntry;
@CheckForNull Map.Entry<E, Count> currentEntry; int occurrencesLeft; boolean canRemove;
@Override public Iterator<E> iterator() { return new MapBasedMultisetIterator(); } private class MapBasedMultisetIterator implements Iterator<E> { final Iterator<Map.Entry<E, Count>> entryIterator; <extra_id_0> MapBasedMultisetIterator() { this.entryIterator = backingMap.entrySet().iterator(); } @Override public boolean hasNext() { return occurrencesLeft > 0 || entryIterator.hasNext();