public Set<String> clearPopularNames(TablePrettyPrinter printer, int maxSize) { Set<String> removed = Helper.newHashSet(); Set<Counter<String>> sorted = Helper.newTreeSet(Counter.<String>getReverseComparator()); Iterator<Map.Entry<String, Collection<T>>> iter = map.entrySet().iterator(); for (Map.Entry<String, Collection<T>> entry = iter.next(); iter.hasNext(); entry = iter.next()) { if (entry.getValue().size() > maxSize) { removed.add(entry.getKey()); sorted.add(new Counter<String>(entry.getKey(), entry.getValue().size())); iter.remove(); } } printer.beginTable(2); printer.addDividerRow(); printer.addRow("Name", "Count"); printer.addDividerRow(); for (Counter<String> counter : sorted) { printer.beginRow(); printer.addCell(counter.getObject()); printer.addCell(counter.getCount()); } printer.addDividerRow(); printer.endTable(); return removed; }