code: public void removeZeroCounts() {
      for (Iterator<E> iter = map.keySet().iterator(); iter.hasNext();) {
        if (getCount(iter.next()) == 0) {
          iter.remove();
        }
      }
    }
docs: Removes all keys whose count is 0. After incrementing and decrementing
  counts or adding and subtracting Counters, there may be keys left whose
  count is 0, though normally this is undesirable. This method cleans up
  the map.
  <p/>
  Maybe in the future we should try to do this more on-the-fly, though it's
  not clear whether a distinction should be made between "never seen" (i.e.
  null count) and "seen with 0 count". Certainly there's no distinction in
  getCount() but there is in containsKey().