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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-3-31 19:59  /  1112 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 田磊阳 于 2013-4-4 09:37 编辑

set 集合 和 map 集合的功能是什么 他两的区别

6 个回复

倒序浏览
set底层就是使用的map集合
set集合里存储的对象是单个的。map集合存储的是键值对,一对对的往里存,并且要保证键的唯一性
map集合的键值对的取出要依靠set集合,
map集合的取出原理就是将map集合转成set集合(将键或映射关系存到set集合中)再通过set集合具备的迭代器取出

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。我们知道数学上的集合也是Set这个,集合里面一定是没有重复的元素的。
映射(Map),这个在java里不是地图的意思,其实地图也是映射哈。它里面的东西是键-值对(key-value)出现的,键值对是什么呢?举个例子,比如我们查字典,用部首查字法。目录那个字就是键,这个字的解释就是值。键和值成对出现。这样说可以理解吧。这也是很常用的数据结构哦。

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
Set接口继承Collection接口,Collection接口为Set声明集合的基本操作方法,如获得迭代器,判断是否为空,是否包含某元素,保留或移除某些元素等;Map接
口声明从关键字到值的映射<K,V>,而关键字或值的类型显然可以是Set的实现。Map不提供直接的迭代器,二是通过entrySet()获得Set试图,再进一步获得迭代器,进而取得里面的元素(键或值)。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
简单来说,Set集合是单列集合,Map集合是双列集合。其中,Set集合可以通过hashCode方法和equal方法以及二叉树算法去除重复对象。并可以对对象进行排序。而Map集合存储的是一些键值对的集合,并对键要求唯一,值可以重复。在Map集合中保证键的唯一性原理与Set集合中去重的原理一致。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
首先说相同点
1.他们都是接口。
2.他们都有实现自己的类
3.实现了他们接口的类的集合都只能存引用类型数据,也就是对象,不能存基础类型数据
不同点
1.实现Set接口的集合,只能存单列值,存入的元素时没有顺序的,且是不能重复的
2.实现了Map接口的集合,可以存一对数据(键值对),值可以相同,键不能相同,否则会覆盖原来的

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马