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

相关推荐

野猪不是猪🐗:😇:恭喜你以出色的表现成为xxx的一员 😨:您以进入本公司人才库 实际点开:您愿望单中的xxx正在特卖!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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