code: public T min() {
          TObjectLongIterator<T> iter = counts.iterator();
          long minCount = Long.MAX_VALUE;
          T min = null;
          while (iter.hasNext()) {
              iter.advance();
              long count = iter.value();
              if (count < minCount) {
                  min = iter.key();
                  minCount = count;
              }
          }
          return min;
      }
docs: Returns the element that currently has the smallest count.  If no objects
  have been counted, {@code null} is returned.  Ties in counts are
  arbitrarily broken.