一个hashMap删除操作的简单问题

为什么第二种操作会抛出异常,第一种却不会
全部评论
第二种操作应该先是抛出的java.lang.IllegalStateException 异常, 因为第一次remove()前没有next(), current=null, 删除会抛异常。如果没有这个问题,后面的remove()后再next()确实也会抛异常,是NoSuchElementException异常。
点赞 回复 分享
发布于 2018-04-12 17:55
因为第一个判断了hasNext()后才调用当前迭代器的next(),第二个你remove()之后可能hasNext()返回false了,调用next()自然抛出异常。
点赞 回复 分享
发布于 2018-04-12 17:15
第二个第一次直接remove,没有next
点赞 回复 分享
发布于 2018-04-12 16:54
因为第一个循环先判断 hasNext() 才进入循环执行next(); 而第二个是,先执行next() 再判断hasNext(); 而next()方法中,当下一个元素为null时会抛出异常。
点赞 回复 分享
发布于 2018-04-12 16:48

相关推荐

06-19 14:58
门头沟学院 Java
点赞 评论 收藏
分享
真烦好烦真烦:牛友太有实力了
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
兄弟们你们进大厂靠的是什么项目啊
DOTPHTP:课设改。其实项目什么的如果不是实习里面的生产项目的话,建议✍️那种自己想要做的。突出个人自驱力,而不是为了找工作不得不随波逐流这种
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务