当前位置: 首页 > news >正文

如何遍历hashMap?

一、最推荐方式 ⭐ entrySet 遍历

这是面试官最爱听的答案。

Map<String,Integer>map=newHashMap<>();map.put("A",1);map.put("B",2);for(Map.Entry<String,Integer>entry:map.entrySet()){System.out.println(entry.getKey()+"="+entry.getValue());}

✅ 优点:

  • 同时拿到 key 和 value

  • 只遍历一次

  • 性能最好


二、keySet 遍历

1️⃣ 只遍历 key

for(Stringkey:map.keySet()){System.out.println(key);}

2️⃣ 通过 key 获取 value

for(Stringkey:map.keySet()){System.out.println(key+"="+map.get(key));}

⚠ 不推荐用于大量数据,因为:

  • 先遍历 key

  • 再根据 key 查找 value

  • 理论上多一次查找操作


三、values 遍历(只关心值)

for(Integervalue:map.values()){System.out.println(value);}

适合只需要 value 的场景。


四、Iterator 遍历(可删除)

如果你需要边遍历边删除,必须用 Iterator。

Iterator<Map.Entry<String,Integer>>iterator=map.entrySet().iterator();while(iterator.hasNext()){Map.Entry<String,Integer>entry=iterator.next();if(entry.getValue()<2){iterator.remove();}}

⚠ 不要在 for-each 中直接 remove,否则会抛:

ConcurrentModificationException


五、Java 8 Lambda 写法(现代推荐)

map.forEach((key,value)->{System.out.println(key+"="+value);});

简洁、优雅、企业常用。


六、Stream 方式(进阶)

map.entrySet().stream().filter(e->e.getValue()>1).forEach(System.out::println);

适合做:

  • 过滤

  • 排序

  • 转换


七、效率对比

方式推荐指数说明
entrySet⭐⭐⭐⭐⭐性能最佳
keySet + get⭐⭐多一次查找
values⭐⭐⭐只看 value
Iterator⭐⭐⭐⭐可安全删除
forEach⭐⭐⭐⭐⭐简洁优雅
http://www.jsqmd.com/news/437728/

相关文章:

  • 别再折腾 iptables 了!用 cproxy + wstunnel 轻松搞定 Linux 透明代理,内网穿透稳如老狗
  • 【免费分享】基于SpringBoot+vue的夕阳红公寓管理系统
  • OpenClaw 新人指南:5 分钟掌握你的私人 AI Agent
  • Windows资源管理器
  • Soft Organizer Pro
  • 【如何快速开发特种设备数字孪生应用平台】
  • C++函数重载详解:规则与实战
  • OpenClaw最佳工具榜来了!这6款龙虾最受欢迎
  • 别再搞混了!从教材定义到“接力赛”神比喻,3分钟彻底读懂「并行」与「并发」
  • agent课
  • 2026AI搜索时代:企业品牌AI“隐身”问题与GEO优化实操指南
  • 不常用,总是忘记:nginx 重启指令
  • 2026年GEO优化工具实测盘点:9款AI搜索时代品牌可见性工具全解析
  • EtherCAT 的看门狗触发
  • UE 中插件 VisualStudioTools 找不到而编写报错
  • 别小看“单词唯一缩写”:一道题背后的哈希思维与系统设计哲学
  • 万字详解 MySQL MGR 高可用集群搭建
  • 一文读懂Llama2的架构和推理过程
  • 速来体验 | 1Panel应用商店上架阿里开源个人AI助理CoPaw
  • XSS 漏洞全面解析:从简介、危害、分类到验证方法,一篇吃透
  • Lenny‘s Podcast:你的产品为什么突然不增长了?这套5步诊断框架帮你找到病根
  • Meta携手NYU突破多模态训练边界:AI模型实现文本和视觉的统一
  • 避坑指南|3种XSS攻击类型深度拆解,附实战测试案例(新手必看)
  • fast-cpp-csv-parser:一款最快的csv文件解析库
  • Python:从入门到精通的编程语言之旅
  • bootstrap.yml配置文件和@RefreshScope配置实时刷新问题
  • CMake基础: 全局变量CMAKE_POSITION_INDEPENDENT_CODE
  • XSS攻击详解:类型、目标与防护策略(xss攻击类型、xss攻击方式和原理)
  • 2026年的电梯门禁读卡器(梯控读头)已演进为高度标准化、模块化且功能强大的智能身份识别前端。其核心价值在于通过嵌入式设计和全协议兼容,成为连接物理通行与数字权限的“万能接口”,赋能各类智能终端。
  • 在B站学AI绘图笔记