A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 357955778 中级黑马   /  2015-6-28 11:44  /  330 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么运行结果会是这样?用注释的方法就没问题!

1.png (15.22 KB, 下载次数: 21)

1.png

2.png (4.08 KB, 下载次数: 9)

2.png

4 个回复

倒序浏览
it.next()返回的已经是迭代的下一个元素了,如果用没注释的那句代码,结果就相当于下一个元素的key值加上下下个元素的value值,运行的第一次如果能打印出来就是1:Rose,最后一个元素取不了下一个元素就报错了
回复 使用道具 举报
你可以将Java迭代器看成是位于各个元素之间,当你调用next方法时,迭代器便越过下一个元素,并且返回它刚刚越过的那个元素的引用。所以你调用了多少次next()便要返回多少元素的引用,当遍历完所有元素而你又要调用next(),
返回的不再是正常的键值。
回复 使用道具 举报
守门员 发表于 2015-6-29 09:11
it.next()返回的已经是迭代的下一个元素了,如果用没注释的那句代码,结果就相当于下一个元素的key值加上下 ...

学习了,多谢!
回复 使用道具 举报
学习了。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马