作者PsMonkey (痞子军团团长)
站内java
标题Re: [问题] 一个关於RuntimeException的问题
时间Fri Apr 4 18:23:44 2008
故事背後的设定是这样的
假设你把 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
1F:推 plankton:真不好意思卡关卡这麽久 Q__Q 谢谢你了 版大.. 04/04 18:44
2F:→ plankton:吐曹一点都没关系 感谢 04/04 18:47