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

相关推荐

10-17 23:18
已编辑
西北农林科技大学 Web前端
独行m:给25可以试试,但他只能给12,那就是纯纯的事精
秋招,不懂就问
点赞 评论 收藏
分享
10-25 22:20
门头沟学院 Java
代码飞升_不回私信人...:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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