Re: [問題] 一個關於RuntimeException的問題
故事背後的設定是這樣的
假設你把 Iterator 當作陣列來看
那麼,你有這麼一個陣列
wow = {x, y, z, oo}
一開始的時候,會有一個變數 index = 0,也就是指向 x
當你詢問 wow.hasNext() 的時候,會回答:有啦有啦
然後當你要求 wow.next() 的時候
wow 不但會把 x 丟給你,還會把 index++
你在迴圈裡頭要了兩次 wow.next(),卻沒有每次檢查 wow.hasNext();
萬一 wow 裡頭的元素不是偶數,你就掰掰啦... [茶]
是說... 我不是要刻意吐你曹
只是,這種東西,如果你的 (1) 你真的知道他在幹麼
或是對「為甚麼這樣子就會一直印出下一個」有過疑惑
那... 應該只會卡住兩個小時吧...
※ 引述《plankton (java很重概念T_T)》之銘言:
: 故事是這樣的...
: 我有一個 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
: 感激不盡
--
侃侃長論鮮窒礙 首頁:http://www.psmonkey.idv.tw
眾目睽睽無心顫 Blog:http://ps-think.blogspot.com
煢居少聊常人事
殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.199.163
推
04/04 18:44, , 1F
04/04 18:44, 1F
→
04/04 18:47, , 2F
04/04 18:47, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):