Java 对于每个未正常工作的循环

Java 对于每个未正常工作的循环,java,foreach,speed-test,Java,Foreach,Speed Test,就我个人而言,我无法理解为什么我在SpeedTest中的代码的这一特定部分不起作用。没有指纹。我确信问题出在我使用的第一个foreach循环中,这导致它永远不会停止运行或类似的事情。我想知道是否有人可以指出如何解决我的问题,以帮助它实际运行和打印 下面是我在速度测试中遇到的问题 List<String> words = fp.getAllWords(); Date startTime1 = new Date(); // For each word, store in the hash

就我个人而言,我无法理解为什么我在SpeedTest中的代码的这一特定部分不起作用。没有指纹。我确信问题出在我使用的第一个foreach循环中,这导致它永远不会停止运行或类似的事情。我想知道是否有人可以指出如何解决我的问题,以帮助它实际运行和打印

下面是我在速度测试中遇到的问题

List<String> words = fp.getAllWords();
Date startTime1 = new Date();
// For each word, store in the hashTable how many times it appeared

System.out.println("test"); //my problem is that "test" prints but nothing after prints

for (String word : words) {
    String a = word;
    if (theHashTable.get(a) != null) { // if node not null, then a word has been recorded
        int ind = theHashTable.get(a);
        theHashTable.put(a, ind);
    } else {
        theHashTable.put(a, 1); // no such word has been recorded yet
    }
}

Date endTime1 = new Date();

System.out.println("Time to add all words in script: "+ (endTime1.getTime()-
   startTime1.getTime()));
List words=fp.getAllWords();
Date startTime1=新日期();
//对于每个单词,在哈希表中存储它出现的次数
系统输出打印(“测试”)//我的问题是“测试”打印,但打印后什么都没有
for(字符串字:字){
字符串a=单词;
如果(hashtable.get(a)!=null){//如果节点不为null,则记录了一个单词
int ind=hashtable.get(a);
hashtable.put(a,ind);
}否则{
hashtable.put(a,1);//还没有这样的单词被记录下来
}
}
日期endTime1=新日期();
System.out.println(“在脚本中添加所有单词的时间:”+(endTime1.getTime())-
startTime1.getTime());

谢谢。

“不打印任何内容”。甚至最后一行也不打印?代码是否终止?您确定底部的
System.out.println()
未执行吗?是
words.isEmpty()
?您拥有的代码应该终止。如果您有一个非常庞大的单词列表,或者哈希表非常庞大,则可能需要一些时间。但是它应该结束了。我怀疑这里的问题是哈希表的问题。你能出示密码吗?.get()或.put()进入一个循环而不退出。另外,
hashtable.put(a,ind+1)更有意义。