第一次来这里提问,是个刚刚学习java的菜鸟,希望得到您的帮助
下面的这个程序不知道为什么运行不出来 用的是eclipse,多谢package day607;
import java.util.*;
public class TestSet { public static void main(String[] args) {
Set<String> words=new HashSet<String> ();
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;1
totalTime+=callTime;
}
Iterator<String> iter=words.iterator();
for(int i=1;i<=20;i++){
System.out.println(iter.next());
System.out.println("....................................................");
System.out.println(words.size()+"distinct words."+totalTime+"milliseconds");
} }}

解决方案 »

  1.   

    程序一直在while部分运行
    当然没有输出结果啊
      

  2.   

    import java.util.*;public class TestSet {public static void main(String[] args) {  Set<String> words = new HashSet<String>();
    long totalTime = 0; Scanner in = new Scanner(System.in);
    while (in.hasNext()) {
    String word = in.next();
    //要有个标记退出循环,不然就出不去了
    if("exit".equalsIgnoreCase(word))
    break;
    long callTime = System.currentTimeMillis();
    words.add(word);
    callTime = System.currentTimeMillis() - callTime;
    totalTime += callTime;
    }
    Iterator<String> iter = words.iterator();
    //是这样循环Set的,也可以用其他2种方式
    while(iter.hasNext()){
    System.out.println(iter.next());
    System.out.println("....................................................");
    }
    System.out.println(words.size() + " distinct words. " + totalTime
    + " milliseconds");
    }

    感觉你是这个意思
      

  3.   

    ah,呵呵 原来这样
    不过刚刚修改时候加入 if("bye".equals(word)) break;后又抛出了java.util.NoSuchElementException的异常,为什么呢
      

  4.   

    明白啦 ~!是这样两个问题 确实while比for 要好 刚来论坛,分数不多 多谢二位