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…

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编译当今时代,网络世界处处充满了危机,对于网络用户来说,能够对各种类型的恶意软件进行了解,也许有助于在网上冲浪的过程中保全自身。病毒计算机…

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之类的命令行工具,来提供一些更加高级的功能如今微软更进一步,放出一大招,正式…

修改Windows远程桌面3389端口

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

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、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇…

SpringCloud主要组件

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

求数组中的最小子数组,时间复杂度o(n),java

石家庄铁道大学 信1405-1 班 唐炳辉 题目:给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。 设计思路:两个变量 ,一个记录当前并入的数组的值,另外一个记录所算过得最大的数组的值,当并入的值为小于…

MYSQL数据库默认latin1字符集转换为GBK或UTF8

可以采用下面的方法latin1字符集转换为gbk字符集或utf8字符集。具体的转换步骤如下:一、latin1转gbk1、导出数据库mysqldump --default-character-setlatin1 -h 数据库连接ip -u root -P 3306 -p数据库密码 db_name table_name > /usr/home/test/table_name.sql2…

【Post工具】PostMan 他媳妇 PostWoman

一个免费,快速,美观的API请求构建器,可以替代 Postman。 测试网址: https://postwoman.io/ 下载地址 https://github.com/liyasthomas/postwoman 主要特性: 支持自定义换肤支持权限支持参数、请求体支持 PWA支持历…

MYSQL统计和识别重复值

1、查询和计算表person_tbl中(last_name,first_name)组合有重复的记录的数量。mysql> SELECT COUNT (*) AS repetitions, last_name, first_nameFROM person_tbl GROUP BY last_name, first_nameHAVING repetitions > 1;2、从结果集中…

main spring启动_SpringBoot学习(一):为什么main方法启动类需要放在项目根目录...

一、概述使用SpringBoot的应用是需要将应用代码编译打包成jar包,然后基于main方法的方式来独立启动这个应用,使得该应用作为一个独立进程运行。这是跟传统的将项目打包成war包,然后部署到tomcat服务器去运行的一个区别。而在应用当中&#xf…