Map和Set的区别「建议收藏」

Map和Set的区别「建议收藏」Map和Set的区别—————————————–分割线—————————–  map和set都是stl中的关联容器,map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序,如果需要重复则使用multiset,要说…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Map和Set的区别

—————————————–分割线—————————–
  map和set都是stl中的关联容器,map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序,如果需要重复则使用multiset,要说区别的话,存储的东西不一样,应用场景不一样,支持的操作也不一样,很多不同。
  map和set支持快速查找和删除,一般使用RB树来实现,当然后面还有用hashtable实现的,使用rb树作为底层结构增删数据都很快,不存在内存移动也就不容易出现迭代器失效的问题,这也就是区别于vector的原因-内存移动
  Map中的每一个元素包含一个键对象和值对象,它们成对出现。键对象不能重复,值对象可以重复。
  Set中的对象不按特定方式排序,并且没有重复对象。但它的有些实现类能对集合中的对象按特定方式排序,例如TreeSet类,它可以按照默认排序,也可以通过实现java.util.Comparator接口来自定义排序方式。

总结如下:

set是一种关联式容器,其特性如下:

  • set以RBTree作为底层容器
  • 所得元素的只有key没有value,value就是key
  • 不允许出现键值重复
  • 所有的元素都会被自动排序
  • 不能通过迭代器来改变set的值,因为set的值就是键

map和set一样是关联式容器,它们的底层容器都是红黑树,区别就在于map的值不作为键,键和值是分开的。它的特性如下:

  • map以RBTree作为底层容器
  • 所有元素都是键+值存在
  • 不允许键重复
  • 所有元素是通过键进行自动排序的
  • map的键是不能修改的,但是其键对应的值是可以修改的
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196423.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql数据库创建、删除数据库

    mysql数据库创建、删除数据库

    2021年10月15日
  • Mysql登录时报错 ERROR 1045 (28000): 错误解决办法

    Mysql登录时报错 ERROR 1045 (28000): 错误解决办法本文转载自:http://www.cnblogs.com/zlslch/p/5937784.html错误问题的描述: ERROR1045(28000):Accessdeniedforuser’ODBC’@’localhost'(usingpassword:NO)ERROR1045(28000):Accessdeniedforuser’ODBC’

  • layui官网将于2021年10月13日下架

    layui官网将于2021年10月13日下架前言:在刚听到这个小时的时候,真的感觉很意外,从16-17年接触他一来,相对bootstrap等其他的jquey框架来说,layui算是功能最强大,社区最活跃的一款jquery框架了,至少我是这么认为的,他的功能也很强大。官方通告:官方gitee入口所有对layui为之热爱、鞭策、奉献,和支持过的开发者:请接受我用意念和字节传达的深深歉意。这是一个无力、无奈,甚至无助的决定:layui官网将于2021年10月13日进行下线。届时,包括新版下载、文档和示…

  • Linux 解压zip命令「建议收藏」

    Linux 解压zip命令「建议收藏」linux自带的unzip命令可以解压windows下的zip格式的压缩文件。unzip命令  语法:unzip[选项]压缩文件名.zip  各选项的含义分别为:  -x文件列表解压缩文件,但不包括指定的file文件。  -v查看压缩文件目录,但不解压。  -t测试文件有无损坏,但不解压。  -d目录把压缩文件解到指定目录下。  -z只显示压缩文件

  • Windows XP密钥–所有版本通用产品密钥集合

    在用秘钥之前,先看下你说安装的镜像是哪个版本的,再找相应的密钥,版本不对应,秘钥可能不管用,我的xp镜像如下:windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070(ED2000.COM).iso找了sp3vol的密钥,激活成功尽管微软已经不再支持WindowsXP更新,但我相信仍然有许多用户因为他们的个人…

  • NOIP普及组套题_noip2019普及组试题

    NOIP普及组套题_noip2019普及组试题题目链接题目描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入格式一个整数N输出格式一个整数,表示反转后的新数。输入输出样例输入#1123输出#1321输入#2-380输出#2-83代码://P1307数字反转#include<iostream>#include<cstring>usingnamespacestd;

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号