c++ map的存储结构_「软帝学院」java集合类框架map及相关常见问题二

07c09fc55d51d13ebdfa85d224f47466.png

Map接口

通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。

0af72fc68de8bd0e203af152b43134e7.png

Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。

Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。

Collection中的集合称为单列集合,Map中的集合称为双列集合。

需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

Map中常用的集合为HashMap集合、LinkedHashMap集合。

Map接口中常用集合概述

通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。

  • HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

  • LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

注意:Map接口中的集合都有两个泛型变量,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量的数据类型可以相同,也可以不同。

Map接口中的常用方法

cee8200130bf9473c2b4c37c6bc969df.png

put方法:将指定的键与值对应起来,并添加到集合中,方法返回值为键所对应的值。

  • 使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中;

  • 使用put方法时,若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的值,替换成指定的新值。

get方法:获取指定键(key)所对应的值(value)

remove方法:根据指定的键(key)删除元素,返回被删除元素的值(value)。

Map接口的方法演示

public class MapDemo { public static void main(String[] args) {//创建Map对象
Map map = new HashMap();//给map中添加元素
map.put("星期一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 下 Conda install 安装出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url解决措施

在使用Conda install 安装库的时候出现以下错误 原因是使用的是国外的镜像,切换至国内镜像就可以解决啦 在cmd 中输入下面命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes…

盘点谷歌浏览器9项隐藏的实用功能

谷歌 Chrome 浏览器一直以速度、简洁和安全为用户所熟知。除此之外,Chrome 的其他功能也非常强大,为了进一步提高工作效率,让我们一一揭晓它的那些隐藏技能吧。1、同时登入多个账户用户拥有多个谷歌账户(工作用或个人用&#xff0…

正则10-18

转载于:https://www.cnblogs.com/XACOOL/p/5357652.html

华为手机下拉菜单没了_用了三年才知道华为录屏这么强大!再不会用,手机钱打水漂了...

现在的手机录屏操作可不少,但是像华为手机这样好用的可不多了!用了好几年华为才知道,原来它的录屏操作这么逆天,今天我就来给大家科普科普:华为录屏的那些事儿!1、快捷录屏直播录屏讲究的就是新鲜热乎&…

程序员下班电脑不关机的5大原因,你中招了吗?

不管是周围的程序员朋友还是网上的很多程序员朋友,在下班后都是习惯不关电脑的,针对这一发现,小编收集了部分网友的意见,看看身为程序员的你是不是也是这样的呢?1、你知道:开机要打开十个左右的应用&#x…

【matlab】将matlab中数据输出保存为txt或dat格式

将matlab中数据输出保存为txt或dat格式 总结网上各大论坛,主要有三种方法。 第一种方法:save(最简单基本的) 具体的命令是:用save *.txt -ascii x x为变量 *.txt为文件名,该文件存储于当前工作目录下,再打开…

mysql数据库算法_数据库:MySQL索引背后的数据结构及算法原理【转】

原文:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同&#…

Anaconda详细安装及安装Scrapy框架

Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节…

时下流行的9种恶意软件,你都了解吗?

来自:FreeBuf.COM*参考来源:csoonline,Karunesh91编译当今时代,网络世界处处充满了危机,对于网络用户来说,能够对各种类型的恶意软件进行了解,也许有助于在网上冲浪的过程中保全自身。病毒计算机…

Windows下OpenSSL创建CA证书以及客户端和服务器端证书

打开命令行工具,转到安装目录bin文件夹,$ mkdir -p ./demoCA/{private,newcerts}$ touch ./demoCA/index.txt$ echo 01 > ./demoCA/serial产生的目录结构如下:-- demoCA/|-- index.txt|-- newcerts/|-- private/-- serial然后执行下面的命…

SpringCloud和SprigBoot之间的依赖关系怎么看

SpringCloud官网地址 https://spring.io/projects/spring-cloud 不推荐使用了,推荐用最新的是Hoxton版本 打开下面提供的网页 https://start.spring.io/actuator/info 使用解析工具查看 https://tool.lu/json/ 查看json串返回的结果 { "git": { …

微软最强命令行工具 Windows Terminal,强势霸榜GitHub

命令提示符也是算 Windows 系统的一大特色了,相信很多人刚看到这白底黑字的界面都有点哭笑不得吧,好在后来微软陆续推出了Powershell、cmd之类的命令行工具,来提供一些更加高级的功能如今微软更进一步,放出一大招,正式…

easyui edatagrid 触发编辑行回掉onEdit

dg.edatagrid(selectRow, i).edatagrid(beginEdit, i);var opts dg.edatagrid("options");opts.onEdit.call(this, i, rows[i]); 转载于:https://www.cnblogs.com/zt528/p/5359388.html

修改Windows远程桌面3389端口

3389端口是Windows 2000(2003) Server 远程桌面的服务端口,可以通过这个端口,用“远程桌面”等连接工具来连接到远程的服务器,如果连接上了,输入系统管理员的用户名和密码后,将变得可以像操作本机一样操作远程的电脑,因…

mysql 5.7.17源码包_centos7 mysql5.7.17源码安装

centos7 mysql5.7.17源码安装**安装前准备操作系统环境:Centos 7.21、解决依赖包并下载源码包至/home/soft/目录下[rootnode03 ~]# yum -y install gcc gcc-c ncurses ncurses-devel cmake bison[rootnode03 ~]# cd /home/soft/[rootnode03 soft]# wget https://sourceforge.ne…

SpringCloud版本名字

SpringCloud版本号字母由来 https://github.com/spring-projects/spring-cloud/wiki SpringCloud最新版Hoxton SpringCloud官网 https://spring.io/projects/spring-cloud#learn

Lua学习教程之 可变參数数据打包与解包

利用table的pack与unpack进行数据打包与解包。測试代码例如以下: print("Test table.pack()----------------");function printTable ( t )if type(t) "table" thenfor k,v in pairs(t) doprintTable(v);endelseprint(t);end endlocal packData function(…

程序员20句励志名言

1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇…

批量保存到mysql_关于保存批量数据进入mysql

提出的要求:生成13位纯数字的卡号与8位纯数字的卡密,要求卡号与卡密都必须全表唯一,然后保存到mysql。思路:1.首先mysql中将这两个字段设置唯一索引,保证这两个字段的值在该表中是唯一存在的2.卡号是有序增长的&#x…

SpringCloud主要组件

SpringCloud主要组件 SpringCloud组件停更说明