作者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