日期:2014-05-18  浏览次数:20671 次

麻烦大家看看这段代码有什么问题(很简单的Hashtable遍历)
public class TestHashtable {
public static void main(String[] args)
{
String key,value;
Hashtable<String,String> ht = new Hashtable<String,String>();
ht.put("xixi", "haha");
ht.put("hello", "world");
ht.put("ni", "hao");
Set<Map.Entry<String, String>> s = ht.entrySet();
Iterator<Map.Entry<String,String>> it = s.iterator();
while( it.hasNext() )
{
key = it.next().getKey();
value = it.next().getValue();
System.out.println("key:"+key+"value:"+value);
}
}
}

结果遍历出来的结果是:
key:xixivalue:hao
Exception in thread "main" java.util.NoSuchElementException: Hashtable Enumerator
at java.util.Hashtable$Enumerator.nextElement(Hashtable.java:1021)
at java.util.Hashtable$Enumerator.next(Hashtable.java:1032)
at TestHashtable.TestHashtable.main(TestHashtable.java:21)
真是找不出什么原因了,而且用keySet方式遍历也是一样的。求各位大神指点迷津!
hashtable 遍历 java iterator

------解决方案--------------------
应该是
value = ht.get(key);才对啊