list set map区别是什么?

 我来答
心的舞台8888
2021-05-20 · TA获得超过12.9万个赞
知道小有建树答主
回答量:5548
采纳率:100%
帮助的人:101万
展开全部

一、含义不同:

set -其中的值不允许重复,无序的数据结构。

list -其中的值允许重复,因为其为有序的数据结构。

map-成对的数据结构,健值必须具有唯一性(键不能同,否则值替换) 其实都是一个用来存储数据的容器,用的场合不一样其作用也就不一样,具体的用法看我上面的解释。

二、用途不同:

List按对象进入的顺序保存对象,不做排序或编辑操作,容许他们有重复对象,LinkedList,ArrayList,Vector 。 

map是一个键值对映射的集合,每次存储一个对象的时候,都需要为该对象存一个key,例如map.put(“123”,”menghaibin”)。而我们取值的时候也只需要取利用key,就能返回我们需要的对象。

set是三者中最简单的集合,他的存储是没有顺序的(其实是有的,是亿靠hashCode来确定的),他里边的内容和我们存储顺序没有直接的关系,而且set里边的对象不能重复。所以要加入set的对象一定要判断是否已经重复了。


list是双向循环链表:

每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。

list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。

和vector另一点不同的是,list的迭代器不会存在失效的情况,他不像vector会保留备份空间,在超过容量额度时重新全部分配内存,导致迭代器失效;list没有备份空间的概念,出入一个元素就申请一个元素的空间,所以它的迭代器不会失效。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式