黑马程序员_集合(Map)

西门子【Automation Framework V1.2】AF架构:从软件栈到高效自动化项目的构建蓝图 本文深入解析西门子Automation Framework V1.2 (AF架构) 的核心价值与实施蓝图。该框架通过定义标准化的软件栈(如TIA Portal V19、STEP7、WinCC Unified)和严格的安装配置流程,将自动化项目开发从依赖个人经验的“手工作坊”模式,转变为高效、可复制的工业化模式。遵循此架构,工程师能快速构建稳定可靠的项目基础,规避环境冲突,从而专注于核心工艺与逻辑设计,大幅提升团队协作与项目交付效率。 阅读详情

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

Map

一、Map集合

Map集合:该集合存储键值对(键值对,就是存在映射关系两个对象,比如A指向B,C指向D,知道A就知道B,知道C就知道D),一对一对往里存,而且要保证键的唯一性。

Map集合的结构,看图:

 

二、Map集合的共性方法

1、  添加

V put ( K key , V  value)

void putAll(Map<? extends K , ? extend V>, m)

2、  删除

void clear()

V remove(Object key)

3、  判断

boolean containsValue(Object value)

boolean containsKey(Object key)

boolean isEmpty()

4、  获取

V  get(Object key)

int size()

Collection<V>  values()

注意两个重要方法:entrySet()和keySet()

 

                基于上面共有的方法,看一个注意的点,先看程序:                          map.put("01","zhangsan01");                map.put("01","zhangsan04");

                map的put方法会返回一个value值。看上面程序,当我们添加第一个键值对的时候,会返回null,当添加第二键值对后,会返回zhangsan01。通过这个现象,我可以得出,添加元素,如果添加时,出现相同的键,那么后添加的值会覆盖原有键对应的值,并用返回被覆盖的值。

 

三、Map集合的取出方式

 

方式一:使用keySet方法

keySet方法可以将Map集合中所有的键存入到Set集合中。因为Set集合具有迭代器,所有可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值。

看示例:

Map<String,String> map =new HashMap<String,String>();                     map.put("01","zhangsan01");                map.put("01","zhangsan04");                                                                          System.out.println("containsKey:"+map.containsKey("02"));           System.out.println("remove:"+map.remove("02"));

       Set<String>key = map.keySet();

       Iteratorit = key.iterator();

                while(it.hasNext()) {

                String key = it.next();

                String value = key.get(key);}

 

                方式二:使用entrySet

                entrySet方法的放回类型是Set<Map.Entry<K,V>。这个方式是将map集合中的映射关系存入到set集合中,而这个关系的数据类型就是:Map.Entry。

看一个示例程序:

                                                                                                                                      Set<Map.Entry<String,String>>entrySet = map.entrySet();

                Iterator<Map.Entry<String,String>>it = key.iterator();

                while(it.hasNext()){

                Map.Entry<String,String>entry= it.next();

                String key = entry.getKey();

                String value = entry.getValue();}

这里,在Map.Entry中,有getKey和getValue方法,用这两个方法就可以取出key和value。

 

对Map.Entry<K,V>的理解:

              首先,entrySet方法是将Map集合中的映射关系取出来了,把这个映射关系视为一个整体,而这个关系就是Map.Entry。每一个映射关系,就是Map.Entry的实例对象。形象的来说,key就是丈夫,value就是妻子,映射关系就是结婚证,结婚证就是Map.Entry类型。

                其次,程序上来说,Map.Entry其实也是一个接口,它是Map接口中的一个内部接口:

                interface Map{

                          public staticInterface Entry{                                                     

                          }

}

最后,子类实现接口:

class HashMap implements Map{

class Hahs implements Map.Entry{

}

}

                                                                                                                                     

那么为什么它是Map中的接口呢,因为Map.Entry代表一种关系,就是说,只有建立的Map的对象,这种关系才会有,所有这就是内部规则,这就符合了之前学习的内部类定义规则。

 

 

 

四、Map的拓展

关于Map的拓展,简单来说就是嵌套。实际例子中,我们用的是一对一,比如String类型对Integer类型,这样的比较好理解,但实际中,好多都是一对一个整体,比如一个学校会对应多个学院,而每个学院里不同学科对应有不同的学生。在程序上来说,就是String类型变量,对应一个Map集合,而这两个整体关系时一个大的Map集合。

TreeMap<String,HashMap<String,Integer>>tm=newTreeMap<String,HashMap<String,Integer>>();

看这个程序,在TreeMap集合中,key是对应String类型,而value对应的是一个HashMap,

HashMap中又有键值对,这就是嵌套。

 

 

 

 

 

 

 

总结:

1、  Map集合也是集合中的一种,存储的也是对象。但存储的和Collection集合不同的是,它存储的是键值对,就是以一个键对应一个值,以这种映射关系存储的。而且要保证键的唯一性。

2、  注意Map集合,添加元素是用put方法,这个方法返回的是value。添加元素,如果添加时,出现相同的键,那么后添加的值会覆盖原有键对应的值,并用返回被覆盖的值。remove方法,在移除key锁对应的映射关系的同时,返回时这个key所对应的value。

3、  Map集合有三个常用实现类:Hashtable,HashMap,TreeMap。注意比较的是,前两者的区别,Hashtable是早先出现的,不可以存入null键和null值,而且同步;HashMap是后出现的,可以存入null键和null值,是不同的步的。相对来说,后者效率更高。

4、  从Hashtable,HashMap,TreeMap的命名上,可以看出存储方式,前两者是按哈希表存储的,后者是按二叉树结构存储的。其他和Set集合中的类似。当我们自定义类时,要注意复写hashCode和equals方法,还有实现Comparable(实现接口compareTo)。

5、  Map集合中没有类似Collection中的迭代器,但有两种方式可以去除元素,整体来说都是转成Set集合。一、keySet方法,把Map集合中的key取出来,放入Set集合,用Set集合中的迭代器取出key,用Map的get方法取出值即可。二、entrySet方法,把Map集合中的映射关系取出,成对的放入Set集合中,注意这个关系时Map.Entry,就是说映射关系时Map.Entry的对象。

6、  Map.Entry实际上是Map集合中的内部接口。

Map集合的拓展,就是不仅限于一对一的映射关系,更多的是一
【Claude】Extra inputs are not permitted 错误:代理剥离 Beta 标头的解决方案 bug报错已解决 深入分析Claude Code Extra inputs are not permitted 400错误的技术原理,解析代理剥离Beta标头的根因与多种修复方案。 阅读详情

相关推荐

Simpack实战:5分钟搞定轨道车辆车轮不圆的3种定义方法(附详细参数设置)

本文详细介绍了在Simpack中定义轨道车辆车轮不圆的3种高效方法:Radius deviations、Fourier coefficients和Harmonic function,并提供了详细的参数设置指南。通过实战案例和参数优化技巧,帮助工程师快速掌握车轮不圆度的定义与仿真,提升轨道车辆动力学分析的准确性和效率。

weixin_29292535的博客 202

Map知识点总结

Map集合:                map集合中的元素都是成对出现,成对存储的                 map集合中的元素都是以一对键和值的形式组成存在的,称为键值对,理解为夫妻对                 map集合中的键不能重复存储,值可以重复                 map集合中的每一个键 对应着一个值 方法: V put(K key, V va...

jovi_zhao的博客 1765

16QAM调制解调仿真(matlab,详细介绍仿真方案的设计、结果及结论、完整代码及注释)

16QAM调制解调仿真目录一、仿真要求二、仿真方案详细设计三、仿真结果及结论四、仿真代码 一、仿真要求 1.用基带等效的方式仿真16-QAM在AWGN信道下的误码率和误比特率性能,并与理论值相比较; 2.高阶与低阶的性能比较。 二、仿真方案详细设计 三、仿真结果及结论 仿真结果 16QAM的星座点图 64QAM的星座点图 16QAM加噪声后的星座点图 64QAM加噪声后的星座点图 16-QAM载波调制信号在AWGN信道下的误比特率性能比较 结论:由图可知,16QAM的误符号率

mango 5万+

Map集合

Map集合的特点: 1、将键映射到值的对象 2、一个映射不能包含重复的键 3、每个键最多可以映射到一个值 举例: <K , V> 001 小花 002 小黑 Map接口和Collection接口的不同: 1、它们两个不存在继承关系,都是属于java.util包下面的平级关系 ...

weixin_44778537的博客 239

ELK - CentOS7 安装 elasticsearch 7.17.5

elk elasticsearch 安装

qq_19783793的博客 1462

YOLOv13手把手添加YOLOv13注意力机制:Biformer(BiLevelRoutingAttentio)YOLOv13双层路由注意力 革命性的高效注意力机制深度解析YOLOv13YOLOv1

YOLOv13 BiLevelRoutingAttention是一种革命性的高效注意力机制,YOLOv13通过双层路由策略显著降低了计算复杂度。YOLO它将注意力计算分为区域级路由和令牌级注意力两个层次,前者选择最相关的K个区域,后者仅在选定区域内执行注意力计算。这种设计借鉴了人类视觉系统的分层处理机制,在保持长距离依赖建模能力的同时,将复杂度从O(N²)降至O(NK + P⁴)。该机制还集成了可微分路由、自适应参数和LePE位置编码等创新技术,YOLOv13 YOLOv13 YOLOv13 YOLOv13

FJN110的博客 660

Map并非集合,Map表示集合之间的映射关系

Map和List和Set区别: 单一元素集合:(每次存储都是存储一个数据)   List集合:允许元素重复,记录添加的先后顺序.   Set集合:不允许元素重复,不记录添加的先后顺序. 双元素集合:(每次存储都得存储一个key和该key对应的value,key-value) ---------------------------------------------

RuiMan的博客 3218

基于simulink的电气弹簧ES稳压控制模型仿真

若要补偿母线电压的谐波,需控制ES上的谐波,即在单闭环母线电压有效值控制的基础上,增加谐波抑制环节来进行谐波控制,现有的各种检测和抑制谐波的方法有采用模拟滤波器、傅里叶分析进行谐波分析、基于瞬时无功功率理论的方法等。当关键负载ZC为电流源型非线性负载时,电路原理图如图7所示,由于电流源型非线性负载可以等效为谐波电流源,关键负载电流ic便会含有谐波分量,导致输电线电流is和母线电压VS同样会含有谐波分量,导致供电质量的严重下降,对用电设备的正常工作造成影响。分别为流过线路阻抗、非关键负载、关键负载的电流,

FPGA/MATLAB学习教程/源码/项目合作开发 1632

(十九)Map、Exception异常处理、finally关键字

今日内容 复习 Set Set HashSet 无序,不可重复 如何去证自定义对象的唯一性 先重写hashcode 再重写equals TreeSet 如果说存放自定义类型,就必须将自定义类实现Comparable 如果说不实现,必须给TreeSet传入一个比较器 比较器:TreeSet<Students> tr...

程序媛乐园 892

Python爬虫实战:爬取携程旅游平台数据,我拆解了动态反爬+Cookie续命(附完整可运行代码)

反爬类型表现形式应对思路sign参数返回403/空数据逆向JS还原加密逻辑Cookie时效登录后1小时Cookie失效定时刷新Cookie/保存登录态行为检测爬取过快触发验证码模拟真人延时/随机点击IP封禁单IP爬取超50条数据被封付费代理池/降低请求频率爬取携程旅游平台数据的核心,不是“简单的HTTP请求”,而是“理解平台的反爬逻辑并合规适配”——从sign参数破解到Cookie维护,再到行为模拟,每一步都是对HTTP协议、前端加密、用户行为的深度理解。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1713

从 SM30 到 Fiori:在 SAP BTP ABAP Environment 里创建 Business Configuration 配置维护对象的完整路径

摘要 在SAP BTP的ABAP环境中,传统SAP GUI和SM30配置方式被Business Configuration (BC)替代。BC通过Fiori应用维护配置,支持传输和权限控制。配置表需满足可维护性条件,如允许数据维护、包含技术字段等。通过ADT生成Maintenance Object和Transport Object,实现配置发布与治理。权限管理需创建IAM App和Business Catalog,确保配置可维护。BC在云端延续了可控、可追溯、可发布的治理原则。 (字数:150)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 242

java中的Map集合

目录 一、Map接口介绍 二、Map接口的遍历方式 (2种) 三 、其他 四、总结 一、Map接口介绍 概述 : Collection中的集合称为单列集合,Map中的集合称为双列集合。需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值,键重复值将被覆盖。Map中常用的集合为HashMap集合、LinkedHashMap集合。 接口常用...

清风不灭的博客 592

DaVinci Developer和DaVinci Configurator:AutoSAR开发与配置工具

a. 组件创建:DaVinci Developer允许开发人员创建不同类型的AutoSAR软件组件,如应用软件组件(Application Software Component,SWC)、基础软件组件(Basic Software Component,BSWC)等。除了以上功能,DaVinci Developer和DaVinci Configurator还提供了丰富的文档和代码生成功能,以支持开发人员和配置人员进行文档编写、代码生成和文档浏览等任务。用户可以根据具体需求对软件组件进行灵活的配置。

HmoaAmp的博客 2262

黑马程序员 Map集合

adfasf

吃番茄不吃番茄皮 595

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

黑马程序员—————Map集合

Map集合概述: 该集合和Collection集合最大的区别是:Collection直接存放值,而Map集合存放的是键值对。      Map集合常见方法:      Map集合是一对一对往里存放的,而且要保证键的唯一性。 1.添加 put(K key,V value); putAll(Map m); 2.删除 clear(); remove(Object key)

mu_jiao的专栏 777

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

黑马程序员——Map集合

------- android培训、java培训、期待与您交流! ----------    Map              一次存两个对象,键值对    HashMap       使用哈希算法对键去重复,效率高,但无序。允许null键和null值    TreeMap        使用二叉树算法排序,可以自定义顺序    LinkedHashMap  使用哈希算法去重复,并且

u012865586的专栏 617

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

黑马程序员——Map双列集合

------- android培训、java培训、期待与您交流! ---------- (一)Map体系 Map集合:相对于Colllection单列集合来说,Map集合称为双列集合,存储的每个元素均为键值对,对键进行约束。可以通过键找到对应的值,键(K)都是唯一的,多个键可以对应同一个值(V)。与数学中的函数类似。 Map集合的体系: Map |--HashMap |--Li

u010154008的博客 1855

黑马程序员 Map集合

------- android培训、java培训、期待与您交流! ---------- Map集合 Map与Collection Map与Collection在集合框架中属并列存在 Map存储的是键值对 Map存储元素使用put方法,Collection使用add方法 Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素

xiaxiaotong0723的专栏 431

黑马程序员-Map集合

---------------------- android开发、java培训、期待与您交流! ---------------------- 黑马程序员-有关Map集合的总结 Map集合没有继承Collection接口,其提供的是key到value的映射。Map中不能包含相同的key只能映射一个value。Key还决定了存储对象在映射中的存储位置,但是鄙视由Key对象本身决定的,

u014300492的专栏 664

黑马程序员——Java Map集合

 Map集合 ------http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Map集合 该集合存储键值对,一对一对往里存。而且要保证键的唯一性。 Map将键映射到值的对象。一个映射不能包含重复的键,每个键最多只能映射到一个值。  

chen_single的博客 438

黑马程序员 Map集合的个人总结

-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------

伤痛是落叶的专栏 390

《黑马程序员》 map集合练习

public class MapTest { /** * 每一个学生都有对应的归属地 学生Student,地址:String * 学生属性:姓名和年龄 * 注意:姓名和年龄相同的视为同一个学生 保证学生的唯一性 * * 1,描述学生 2,定义map容器,将学生作为键,地址做为仁政,存入 3,获取map集合中的元素 */ public static void ma

青云志,我心不死,必度青天... 649

黑马程序员 Map 集合小结

------- android培训、java培训、期待与您交流! --------------------------------  ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 详细请查看:www.itheima.com

gexiaodong1129的专栏 460

黑马程序员————集合框架中Map集合复习笔记

知识点一:可以通过get方法的返回值来判断一个键是否存在。通过返回null来判断。

candledragon001的专栏 925

黑马程序员——Java集合之Map

------- android培训、java培训、期待与您交流! ---------- 一、Map 1:特点 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。  2:Map |—Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。 |—Properties:用来存储键值对型的配置文件的信息,可

Donald1989的博客 770

黑马程序员——Java基础——Map集合的学习

android培训、java培训期待与您交流! Map接口的集合特点: 1、Map集合中的元素是以键值对的形式而存在 2、Map集合中的键(key)是唯一的 3、通过键可以查找Map集合中的值 4、Map集合添加元素的方法是put(key,value) Map集合中常用的方法: put(K key, V value)  添加的方法 get(Object key) 根据键获取值 s

黑马程序员——ItBin2015的博客 783
上一篇: 黑马程序员_集合概述(Collection List&Set)
下一篇: 黑马程序员_泛型概述和工具类
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值