一个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

相关推荐

不愿透露姓名的神秘牛友
07-03 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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