I found that I needed to input a control-z to terminate the input stream
C:\CoreJava\ch13\SetTest>java SetTest chicken pig red green purple ^Z chicken red purple green pig . . . 5 distinct words. 1 milliseconds.
SetTest.java
import java.util.*; /** * This program uses a set to print all unique words in System.in. * @version 1.10 2003-08-02 * @author Cay Horstmann */ public class SetTest { public static void main(String[] args) { Set<String> words = new HashSet<String>(); // HashSet implements Set long totalTime = 0; Scanner in = new Scanner(System.in); while (in.hasNext()) { String word = in.next(); long callTime = System.currentTimeMillis(); words.add(word); callTime = System.currentTimeMillis() - callTime; totalTime += callTime; } Iterator<String> iter = words.iterator(); for (int i = 1; i <= 20 && iter.hasNext(); i++) System.out.println(iter.next()); System.out.println(". . ."); System.out.println(words.size() + " distinct words. " + totalTime + " milliseconds."); } }
Maintained by John Loomis, updated Tue Oct 15 20:29:35 2013