黑马程序员技术交流社区

标题: map集合的keyset方法 [打印本页]

作者: 莫斯科的眼泪    时间: 2013-12-10 22:10
标题: map集合的keyset方法
对于keyset方法有疑惑?图片上标着呢!请各位大神指点一二!

8.png (70.25 KB, 下载次数: 87)

8.png

作者: ysunday    时间: 2013-12-10 22:28
帅哥 看不清啊 直接贴代码吧   不过看着像是get方法是可以的 因为这个方法只是看看集合里边的元素,不会对集合元素造成更改,如果你试试remove,方法忘了,反正只要是对集合的赠删是不允许的,因为对现在正在迭代的集合造成了更改,让迭代器郁闷了,比如迭代器得到的元素是3个 你赠删之后成了4个,迭代器就郁闷了,死活找不到多出的那个元素(开玩笑的啊,差不多这个道理)
作者: wangchao1686    时间: 2013-12-10 22:59
贴代码吧,这看不清啊
作者: ReFly    时间: 2013-12-10 23:46

迭代器是函数获得的,获得后就一直没改变,好比是一张座次表。如果你中途改变了集合中的元素,又继续用这个迭代器。就会出错。好比你中途改变了座次,然后继续按照以前的座次表做事,那么就会出错了。如果是只读操作就不会出错了,因为迭代器没改变。

总结:增删操作改变了集合的迭代器,与一开始就获取到的迭代器不一致了,所以迭代发生错误。读取操作不影响。。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2