首页 > 其他分享 >map的两种遍历方式是什么

map的两种遍历方式是什么

时间:2023-04-06 11:41:37浏览次数:31  
标签:map 遍历 Map 子类 两种 key Entry

学了Map后,我们都知道Map有两种遍历方式,keySet遍历个entrySet遍历,

这里简单介绍一下这两种遍历方式。

首先对于一个Map来说,右key列和value列组成,想遍历这个Map,有两种选择

第一种keyset的想法是先得到其key列,

使用Map的get(key)方法来获取其对应的值,如下图:

map的两种遍历方式是什么 _内部类

对应的代码是:

map的两种遍历方式是什么 _类对象_02

第二种思想是这样的,想办法得到Key和Value的映射关系,再从这个关系中得到对应的key和value值,也就是第二种遍历方式,entrySet

如图:

map的两种遍历方式是什么 _内部类_03

对应的代码是:

map的两种遍历方式是什么 _内部类_04

以上就是Map的两种遍历方式,希望对大家有帮助

这里面顺便介绍下Map.Entry的结构

map的两种遍历方式是什么 _映射关系_05

Map.Entry Entry是一个Map的内部接口,等着Map的子类对象来实现它,

子类对象怎么实现呢?使用内部类的形式,这个内部类通过实现Map.Entry的接口

实现其getKey和getValue方法,完成自己的遍历方法,最后map的子类对象再通过

EntrySet方法将这个内部类对象返回,所有有了

map的两种遍历方式是什么 _映射关系_06

标签:map,遍历,Map,子类,两种,key,Entry
From: https://blog.51cto.com/u_15739596/6172437

相关文章

  • socks5的两种验证方法
    Socks5协议支持两种类型的验证方法:无验证(NoAuthentication)和用户名密码验证(Username/PasswordAuthentication)。1、无验证(NoAuthentication):在此方法中,Socks5客户端与Socks5服务器建立连接后,客户端发送一个不带验证信息的请求,直接进行连接。这种方式比较简单,但是缺乏安全性,因为任......
  • ES6 => map、filter方法的区别
    letdataArr=[{name:450200000,code:1},{name:450300000,code:2}....] map:会返回执行map方法的数组(dataArr),的所有项(条件不成立也会返回undefined),可以只返回项中的某一参数 filter:会返回执行filter方法的数组(dataArr),条件成立的项,会返回整个遍历的项(不能只返回项中的某一......
  • 遍历容器
    利用迭代器 for(autoit=a.begin();a!=a.end();it++){cout<<*it<<endl;} for_eachvoidfunc(doublex){cout<<x<<endl;}vector<double>a;for_each(a.begin(),a.end(),func)新用法unordered_map<char,int>s;for(autoit:......
  • concurrentHashMap为什么是线程安全的?
    ConcurrentHashMap是线程安全的。它可以被多个线程同时使用而不需要额外的同步措施(比如使用synchronized)来保证线程安全。这是因为ConcurrentHashMap内部使用了一些非常高效的机制来保证线程安全,包括:分段锁:ConcurrentHashMap将数据分成多个段,每个段都有自己的锁。这样,在多线程......
  • Cesium 案例(三) Web Map Service(WMS) Washington DC 2017
    WMSCesium.Ion.defaultAccessToken="token";   constviewer=newCesium.Viewer("cesiumContainer");   //AddaWMSimagerylayer   constlayer=newCesium.ImageryLayer(    newCesium.WebMapServiceImageryProvider({ ......
  • 【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种
    说明:很简单一个在HTTP模块中,而另外一个和HTTP是并列的Stream模块(Nginx1.9.0支持)一、两个模块的最简单配置如下1、HTTP负载均衡:http{includemime.types;default_typeapplication/octet-stream;upstreamlive_node{server127.0.......
  • Cesium 案例(二)Web MapTile Service with Time
    使用官方github包,部分解释来源于http://cesium.xin/cesium/cn/Documentation1.95/index.html  Cesium.Ion.defaultAccessToken=token;   constviewer=newCesium.Viewer("cesiumContainer",{    shouldAnimate:true,    //时钟应该默认尝试......
  • /map
    在ROS中,/map是一个用于存储和传输地图数据的话题。发布者:/map话题由地图构建算法或仿真器节点发布,用于向其他节点传递地图信息。订阅者:其他节点可以通过订阅/map话题来接收地图数据并进行相应的处理。 疑问:雷达的数据给谁了?地图构建算法那个节点......
  • 解决arcmap10.2无法连接arcgis server管理的问题
    最近重装了一台电脑,安装了常用的arcgis10.2系列软件,安装过程比较顺利。可是安装后arcmap却无法连接server,在下面界面提交完成,报用户名密码错误: 解决办法:(1)打开manager,在安全性--角色处新建角色administrator (2)在用户处,新建用户agsserver,设置密码,设置角色为administrator......
  • 单向链表和双向链表的逆序的两种实现方式
    单向链表的逆序实现方式publicstaticclassNode{privateintval;privateNodenext;publicNode(intval){this.val=val;}}/**实现单向链表的第一种方式,只通过链表指针的重连来实现*/publicstaticNoderece......