Java中Map的4种遍历方式

article/2025/9/23 2:19:05

原标题:Java中Map的4种遍历方式

第一种方式:这是平常用的最多也最可取的一种遍历方式。

for (Map.Entry entry : map.entrySet()) {

System.out.println(“key=” + entry.getKey() + “,value=” + entry.getValue());

第二种方式:如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet,该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

// 遍历key

for (String key : map.keySet()) {

System.out.println(“key=” + key);

}

// 遍历value

for (Object value : map.values()) {

System.out.println(“value=” + value);

}

第三种方式:使用Iterator进行遍历Map。

Iterator> entries = map.entrySet().iterator();

while (entries.hasNext()) {

Entry entry = entries.next();

System.out.println(“key=” + entry.getKey() + “,value=” + entry.getValue());

}

15a6ce56b09ce4633daec479de4ca043.png

注意:在遍历过程中remove操作,只能用iterator遍历方式,其他遍历会抛异常,(顺便补充,list通过Iterator方式可正确遍历完成remove操作,直接调用list的remove方法就会抛异常)。

Iterator> it = map.entrySet().iterator();

while (it.hasNext()) {

Map.Entry entry = it.next();

String key = entry.getKey();

if (key.equals(“1”)) {

System.out.println("remove的key= " + key);

it.remove();

System.out.println(“key=” + key + “已移除”);

}

}

for (String key : map.keySet()) {

System.out.println(“key=” + key + “,value=” + map.get(key));

}

list的遍历中remove。

//会抛ConcurrentModificationException异常

for(String str : list){

list.remove(str);

}

//正确遍历移除方式

Iterator it = list.iterator();

while(it.hasNext()){

it.next();

it.remove();

}

第四种遍历方式:通过键找值遍历,缺点,效率低,本身从键取值是耗时的操作。

for (String key : map.keySet()) {

Object value = map.get(key);

System.out.println(“key=” + key + “,value=” + value);

}

责任编辑:


http://chatgpt.dhexx.cn/article/o4y5PBli.shtml

相关文章

HashMap的几种遍历方式及循环删除

目录 1. 前言2. HashMap 的遍历方式2.1. 迭代器 EntrySet2.2. 迭代器 KeySet2.3. ForEach EntrySet2.4. ForEach KeySet2.5. Lambda 表达式2.6. Streams API 3. 循环删除3.1. 迭代器 Iterator 方式3.2. ForEach 循环方式3.3. Lambda 表达式3.3.1. Lambda 删除的正确方式 3.4. S…

Map遍历四种方式及其效率

目录 1、Map介绍 2、Map数据结构及扩容 2.1、数组:寻址容易,插入和删除元素困难 2.2、链表:寻址困难,插入和删除元素容易 2.3、Map数组长度默认16,扩容负载因子为0.75 3、Map遍历4种方式及其效率 3.1、方式一&a…

前端map循环遍历使用

map定义 Array.map() ⽅法返回⼀个新数组,数组中的元素为原始数组元素调⽤函数处理后的值,同时不会改变原来的数组 var newArra[1,3,6,10,44]; var newArraysnewArra.map((index) > { return index*index }) console.log(newArra); //[1,3,6,10,44]…

map forEach for in 循环遍历

1.map遍历数组对象 var map [{ key : "百度", value : "李彦宏" },{key : "阿里巴巴", value : "马云" },]; for (var key in map) { console.log(map[key]); } 2.forEach遍历数组 forEach()方法需要一个函数作为参数&…

Map的循环遍历,修改,删除

预制数据 Map<String, String> map new HashMap<>();map.put("aaa","123");map.put("bbb","123");map.put("CCC","123"); 只循环key ---> map.keyset() for (String key : map.keySet()) {Syst…

Java遍历Map五种方法

一、Map集合遍历日常开发最常使用&#xff0c;简单总结五种方法差异。 ①、IteratorentrySet写法【推荐JDK8以下】&#xff0c;Map.Entry是Map接口的内部接口&#xff0c;获取迭代器&#xff0c;然后依次取出每个迭代器里面的Map.Entry Iterator<Map.Entry<Integer,Strin…

443端口被占用怎么办

前段时间配置SDN的时候装了虚拟机&#xff0c;然后最近打开Steam插件访问社区的时候发现跳出错误&#xff0c;443端口被占用&#xff0c;一脸懵逼&#xff0c;后来查找资料才发现原来是虚拟机的vmware-hosted进程占用了443端口 可以通过右键计算机——服务和应用程序——服务—…

当443端口被占用时如何解决?

有时候我们的一些软件需要443端口才能运行&#xff0c;但是443被占用了&#xff0c;应当怎么结束呢&#xff1f; 1&#xff0c;打开CMD&#xff0c;输入netstat -ano回车&#xff0c;如图&#xff1a; 可以看到某程序正在占用443端口&#xff08;左边一列0.0.0.0:443,0.0.0.0代…

steamcom启动服务:443端口被占用,请关闭占用该端口的进程后再点击启动服务!

steamcom启动服务&#xff1a;443端口被占用&#xff0c;请关闭占用该端口的进程后再点击启动服务! 最近想玩玩游戏放松放松&#xff0c;但是steam有点问题&#xff0c;于是下了个插件steamcom,但在启动服务时出现了错误。 过程结果及解决方案 1、下载压缩文件并解压 2、运…

解除445端口的占用

有很多时候,我们测试的时候,会需要用到445端口。而windows默认该端口是开放的,那么我们如何关闭该端口的占用状态呢? 不是通过防火墙阻止445端口的连接来关闭,这种是阻止外部连接,但是本地445端口还是开放的。 我们这里讲的是关闭占用445端口的服务! 关闭Server服务 …

steamcommunity本地反代443端口/80端口被占用解决办法

参考了这两篇文章&#xff1a; https://www.cnblogs.com/chihirotan/p/5785339.html https://blog.csdn.net/mituan1234567/article/details/51085580 太长不看版&#xff1a; 我的电脑最近几天装了VMware&#xff0c;VMware占用了443端口导致steamcommunity无法启动。解决办…

端口被占用但实际端口没被占用

【问题描述】 启动nacos、sentinel时报端口被占用&#xff0c;使用netstat -aon|findstr 8080查找端口使用情况却发现该端口并没有被使用 【问题解决】 原出处&#xff1a;win10系统遇到了一个十分诡异的情况&#xff0c;端口明明没被占用却老是提示端口已占用-CSDN社区 原…

端口被占用如何关闭

在开发的时候有些时候会发现端口冲突的问题&#xff0c;比如最常使用的8080端口为例&#xff1a; 那么如何查询那个进程使用该端口并进行关闭呢&#xff1f; 首先进入命令行窗口输入下方的命令查看所有的端口占用情况 >netstat -ano上面一步不是必须的&#xff0c;然后输入…

VMWare Workstation 443端口被占用

问题说明及检测&#xff1a; 今天安装svn的时候提示端口占用&#xff0c; cmd –>> netstat -aon | findstr “443” 查看到进程的pid为3312 ctrl shift esc 选择服务&#xff0c;查看到进程名&#xff08;点下PID可排序&#xff09; 这个问题是处在VMware上&…

443端口占用问题

起因 科学上网有问题 呗计算机积极拒绝了 俺也不晓得是啥问题&#xff0c;就先去排查了一些问题 下面是两个链接 给我很大帮助 cmd来查看和排出433是谁在占用 VMware占用443的解决路径 查看433占用 使用cmd netstat -ano|findstr “443” 得到如下结果 然后使用 tasklist|…

VMware占用443端口冲突的解决办法

http://www.pc6.com/infoview/Article_70640.html 今天安装了一个VMware Workstation&#xff0c;发现XAMPP的Apache就启动不了。看了一下错误日志&#xff0c;似乎是VMware Workstation占用了443端口导致冲突引起的。查看了一下&#xff0c;原来VMware Workstation有个共享虚拟…

window 服务器443端口占用,443和80端口被占用win10如何解决_443和80端口被占用win10怎么处理...

我们要知道&#xff0c;443端口即网页浏览端口&#xff0c;80端口为HTTP即超文本传输协议开放的&#xff0c;这是用来保护win10系统的正常运行&#xff0c;但是病毒也能通过端口进入系统&#xff0c;最近有用户发现win10系统443和80端口被占用了&#xff0c;对此&#xff0c;小…

成功解决:443端口被vmware-host(8992)占用。请关掉占用443端口的程序或者尝试使用系统代理模式

前言 在启动一个应用程序的时候&#xff0c;显示端口被占用。有两种解决思路&#xff1a;第一修改程序的端口。第二&#xff0c;关闭已经打开的端口。其它方式暂未想到 解决方法 这里采用关闭已经打开的程序占用的端口 1、鼠标在底部状态栏右键&#xff0c;在弹出框中选择 …

一种解决常见的80/443端口被占用导致steamcommunity 302服务无法启动的方法

如题&#xff0c;详见羽翼城大佬的博客&#xff0c;其中详细分析了此问题。奈何本人频繁遇到此问题&#xff0c;而每次打开任务管理器寻找占用此端口的进程时&#xff0c;发现占用443/80端口的进程就是302程序本身&#xff0c;结束进程后重启系统也无法解决。以下是原文给出的解…

HTTPS端口443被程序vmware-hostd.exe占用的解决

环境 Windows Version: Windows 8.1 Pro 64-bit XAMPP Version: 7.3.27 Control Panel Version: 3.2.4 [ Compiled: Jun 5th 2019 ] VMware Workstation 15 Pro 现象 安装完XAMPP并启动控制面板看到如下提示&#xff1a; Port 443 in use by ""C:\Program Files…