code: public Pair<T> min() {
          int minCount = Integer.MAX_VALUE;
          TLongIntIterator iter = counts.iterator();
          long minIndex = 0;
  
          while (!iter.hasNext()) {
              iter.advance();
  
              int count = iter.value();
              if (count < minCount) {
                  minIndex = iter.key();
                  minCount = count;
              }
          }
          if (minCount == Integer.MAX_VALUE)
              return null;
          
          int i = (int)(minIndex >>> 32);
          int j = (int)(minIndex & 0xfffffff);
          return new Pair<T>(elementIndices.lookup(i), 
                             elementIndices.lookup(j));
      }
docs: Returns the pair that currently has the smallest count.  If no pairs
  have been counted, {@code null} is returned.  Ties in counts are
  arbitrarily broken.