创建个Arraylist集合,放几个数据,然后用迭代器循环遍历,同时想做个判断,如果等于指定的数值的数据出现了,就删除它,继续迭代别的元素,单独用remove删除方法没问题,但把它和next方法合起来用,就报错了,求解,谢谢!
6条回答 默认 最新
- 月苍 2015-12-24 00:34关注
既然你自己也标注了正确的和错误的,我给你提一下,你这里有三个点:
分别是,it.hasnext(),第一个it.next(),第二个next.
先解释一下it.hasnext()的意思:如果迭代器有下一个元素(并不会获取,只是告诉你有没有)。it.next():**获取**下一个元素。(_你就是错在这_)
那么现在顺着这两个意思,你的思路跟着走一边,就很清晰了。
你第一次走的流程:while(it.hasnext(有没有1?)),it.next(拿到1),it.next(拿到2);
你第二次走的流程:while(it.hasnext(有没有3?)),it.next(拿到3),it.next(拿到4);
你第三次走的流程:while(it.hasnext(有没有5?)),it.next(拿到5),it.next(拿到6);
......
......
你最后一次走的流程:while(it.hasnext(有没有49?)),it.next(拿到50),it.next(**拿到51**);
然后最后一次就出问题了。 你有51吗?很明显,你自己定义的就是50,所以没有。然后。报错
所以,结果就是这样,你在调用一个方法时,应该明白这个方法的含义,这样能减少你的BUG至于你正确的,我就不赘述了,你可以自己跟着思考一边,为什么它不会报错。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 安装opengauss数据库报错
- ¥15 【急】在线问答CNC雕刻机的电子电路与编程
- ¥60 在mc68335芯片上移植ucos ii 的成功工程文件
- ¥15 笔记本外接显示器正常,但是笔记本屏幕黑屏
- ¥15 Python pandas
- ¥15 蓝牙硬件,可以用哪几种方法控制手机点击和滑动
- ¥15 生物医学数据分析。基础课程就v经常唱课程舅成牛逼
- ¥15 云环境云开发云函数对接微信商户中的分账功能
- ¥15 空间转录组CRAD遇到问题
- ¥20 materialstudio计算氢键脚本问题