public static <E> String toBiggestValuesFirstString(Counter<E> c, int k) { PriorityQueue<E> pq = c.asPriorityQueue(); PriorityQueue<E> largestK = new FastPriorityQueue<E>(); while (largestK.size() < k && pq.hasNext()) { double firstScore = pq.getPriority(); E first = pq.next(); largestK.setPriority(first, firstScore); } return largestK.toString(); }