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.javaimport 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