import java.io.*; import java.util.*; public class WordCountTest { public static void main(String[] args) throws Exception { WordReader reader = new WordReader(new InputStreamReader(System.in)); Map wordMap = new HashMap(); String word; while ((word=reader.readWord()) != null) { Integer count = wordMap.containsKey(word) ? wordMap.get(word) : 0; wordMap.put(word, ++count); } Set entries = new TreeSet(Order.INCREASING_COUNT_COMPARATOR); for (Map.Entry entry : wordMap.entrySet()) { entries.add(new WordCount(entry.getKey(), entry.getValue())); } // Print Iterator result = entries.iterator(); while (result.hasNext()) { WordCount e = result.next(); System.out.println(e.getWord()+" "+e.getCount()); } } }