作者plankton (java很重概念T_T)
看板java
标题一个关於RuntimeException的问题
时间Fri Apr 4 18:00:34 2008
故事是这样的...
我有一个 HashMap<String,Vector> 叫做 "hash"
我想知道hash里面的key有哪些...
於是我使用了 Set please = hash.keySet()这个方法
因为我想要印出来做检查..所以...我又再用了 iterator() 这个方法
所以状况如下
for (Iterator wow=please.iterator();wow.hasNext();)
{
System.out.println((String)wow.next()); ------(1)
}
很好..它可以 把 hash 的 key一个个print出来
但是..当我在for回圈里面再多一行....的时候(下面)
String what = (String)wow.next(); ------------(2)
程式跑到一半就当..当..当..当..了
(1)和(2)意思不是一样吗? 我实在是不懂 为什麽(1)可以 再多加(2)就不行
我的RuntimException如下
Excepion in thread "AWT-EventQueue-0" java.util.NoSuchElementException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
at java.util.HashMap$HashIterator.next(HashMap.java:828)
at OpenKgml.endDocument(Dia.java:331)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 这就是我加(2)的地方
然後我查过书上写说...NoSuchElementException
"是一个容器类别物件中的元素查询失败" @_@
失败....?那(1)怎麽会成功...(2)又为什麽会失败 囧
我卡关卡了快三天了
可以请问各位大大能不能给点提示 T__T
感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: plankton 来自: 140.129.77.13 (04/04 18:03)
1F:推 neigence:一个回圈里面next 2次? iterator不就往後跑了2次了 04/04 18:23
2F:推 kene:因为你只是多一行, 所以回圈内一次会被拿两个元素 04/04 18:23
3F:→ plankton:谢谢!! 我了解了.. 很感谢楼上两位 04/04 18:46