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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hello菜菜 中级黑马   /  2013-10-12 13:14  /  1795 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hello菜菜 于 2013-10-14 11:06 编辑

Map集合作为一个很重要的群体,为什么不能拥有自己的迭代机制呢,一定要依附于Set集合才可以吗???

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

5 个回复

倒序浏览
因为Map是映射表元素是存在有映射关系的键值对,都是两两对应的,如果是Map自己有迭代器那这个迭代器到底迭代的是键呢,还是值呢,还是键值对呢,而不如果我们只要取出键,那键肯定是单个元素的集合,而且元素是不重复了,正好满足Set集合的特点,那就肯定要用到set集合的迭代器了。
不管是取出键还是值,还是键值对的映射关系,那取出的肯定是一个元素的集合,所以再利用set的迭代器也不是很麻烦。

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

回复 使用道具 举报
这是当时开发这个语言就是这样设计的,本来集合就有就已经有迭代了,那么只要继承一下就可以了呗,这样只扩展一些方法就可以的!
回复 使用道具 举报
因为迭代器只能对一种类型的元素进行迭代处理,其原来也是用for循环对集合进行遍历,在通过索引取出集合中的元素。由于Map集合里面存储一组键值对,包含有两种元素,用迭代取出的元素指向不明,而且很难实现。JAVA中就使用set集合来存储当中一种元素,再通过set的迭代器,就可以取出键key,再通过key也就可以取出对于的值value。

评分

参与人数 1技术分 +1 收起 理由
To + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
To 金牌黑马 2013-10-13 13:49:50
报纸
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
回复 使用道具 举报
To 金牌黑马 2013-10-14 09:23:22
地板
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马