[java] Map循环遍历的5种方法实现

2023-11-04

[java] Map循环遍历的5种方法实现


一、方法一(推荐)

推荐使用此方法效率比较高

 Map<String,String> map = new HashMap<>();
 map.put("第一个对象","1");
 map.put("第二个对象","2");
 //第一种方式
 for(Map.Entry entry : map.entrySet()){
     String mapKey = (String) entry.getKey();
     String mapValue = (String)entry.getValue();
     System.out.println(mapKey+":"+mapValue);
 }

二、方法二(推荐)

推荐使用此方法效率比较高,效率与方法一差不多

 Map<String,String> map = new HashMap<>();
 map.put("第一个对象","1");
 map.put("第二个对象","2");
 //第一种方法
 Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator();
 while(entries.hasNext()){
     Map.Entry<String, String> entry = entries.next();
     String mapKey = entry.getKey();
     String mapValue = entry.getValue();
     System.out.println(mapKey+":"+mapValue);
 }

三、方法三

由于使用通过key获取value导致会消耗一点效率

 Map<String,String> map = new HashMap<>();
 map.put("第一个对象","1");
 map.put("第二个对象","2");
 //遍历map
for(String mapKey : map.keySet()){
    String mapValue = map.get(mapKey);
    System.out.println(mapKey+":"+mapValue);
}

四、方法四

由于使用通过key获取value导致会消耗一点效率

 Map<String,String> map = new HashMap<>();
 map.put("第一个对象","1");
 map.put("第二个对象","2");
//遍历map
 Iterator iterator = map.keySet().iterator();
 while(iterator.hasNext()){
     Object mapKey = iterator.next();
     System.out.println("key:"+mapKey+",value:"+map.get(mapKey));
 }

五、方法五

在for循环中遍历key或者values,适用于只需要map中的key或者value时使用

 Map<String,String> map = new HashMap<>();
 map.put("第一个对象","1");
 map.put("第二个对象","2");

//遍历key
for(String mapKey : map.keySet()){
    System.out.println(mapKey);
}
//遍历value
for(String mapValue : map.values()){
    System.out.println(mapValue);
}

总结

建议使用方法一和方法二进行map遍历

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[java] Map循环遍历的5种方法实现 的相关文章

  • 在 mvn 命令中指定 pom.xml 并混合其他项目的目标

    我有多个问题 我可以在 mvn 命令中指定 pom xml 吗 在当前项目上执行 mvn 命令时 我可以混合另一个项目的目标吗 例如 mvn clean otherproject comple otherproject install ot
  • 从 java sdk 向对等方发送提案时出现访问被拒绝错误

    我正在尝试使用以下代码查询区块链并收到访问被拒绝错误 我也遇到同样的错误sendTransactionProposal方法也是如此 UserContext adminUserContext RegisterEnrollUser regist
  • @RestController 没有 @ResponseBody 方法工作不正确

    我有以下控制器 RestController RequestMapping value base url public class MyController RequestMapping value child url method Req
  • “java.net.MalformedURLException:未找到协议”读取到 html 文件

    我收到一个错误 java net MalformedURLException Protocol not found 我想读取网络上的 HTML 文件 mainfest uses permission android name android
  • 如何在 Antlr4 中为零参数函数编写语法

    我的函数具有参数语法 如下面的词法分析器和解析器 MyFunctionsLexer g4 lexer grammar MyFunctionsLexer FUNCTION FUNCTION NAME A Za z0 9 DOT COMMA L
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • Spring Security SAML2 使用 G Suite 作为 Idp

    我正在尝试使用 Spring Security 5 3 3 RELEASE 来处理 Spring Boot 应用程序中的 SAML2 身份验证 Spring Boot 应用程序将成为 SP G Suite 将成为 IDP 在我的 Maven
  • 如何在 Spring 属性中进行算术运算?

  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • GWT 2.3 开发模式 - 托管模式 JSP 编译似乎不使用 java 1.5 兼容性

    无法编译 JSP 类 生成的 servlet 错误 DefaultMessage 上次更新 0 日期 中 0 时间 HH mm ss z 语法 错误 注释仅在源级别为 1 5 时可用 在尝试以开发模式在 Web 浏览器中打开我的 gwt 模
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • 使用按钮作为列表的渲染器

    我想使用一个更复杂的渲染器 其中包含列表的多个组件 更准确地说 类似于this https stackoverflow com questions 10840498 java swing 1 6 textinput like firefox
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp

随机推荐

  • 基于mykernel完成多进程的简单内核

    学号 476 实验资源 https github com mengning linuxkernel 1 实验环境准备 使用个人电脑的parallels desktop ubuntu虚拟机 1 安装qemu sudo apt get inst
  • DCT变换 / DWT变换 ----课堂笔记

    之前也学过 但没有个具体总结 忘差不多了 DCT变换 一 DCT变换的全称是离散余弦变换 DCT 主要用于数据或者图像的压缩 由于DCT能够将空域的信号转换到频域上 因此具有良好的去相关性的性能 DCT变换本身是无损的且具有对称性 对原始图
  • 分支创建&查看&切换

    1 初始化git目录 创建文件并将其推送到本地库 git init echo 123 gt hello txt git add hello txt git commit m first commit hello txt git init I
  • hive分区与分桶

    为什么要分桶 获得更高的查询处理效率 在分区数量过于庞大以至于可能导致文件系统崩溃时 或数据集找不到合理的分区字段时 我们就需要使用分桶来解决问题了 分区中的数据可以被进一步拆分成桶 不同于分区对列直接进行拆分 桶往往使用列的哈希值对数据打
  • 什么是模式识别(简单易懂)

    1 大脑有一种偏好 叫模式化 这也是源于大脑具有的一个重要功能 模式识别 大脑不是把每个信息点全部处理后再进行识别 而是迅速抓住几个重要特征 然后与大脑中的已有模式对比 只要差不多 就套用 比如 我们可以在一张很多人的合影中迅速识别出某个特
  • 解决开启防火墙后,服务器不能ping通,网站不能访问的问题

    1 解决能ping通的设置 控制面板 Windows防火墙 高级设置 入站规则 然后右键启用这个选项就可以了 2 解决网站不能访问的设置 控制面板 Windows防火墙 高级设置 点击入站规则 新建规则 这样就将80端口加入到入站规则中 实
  • CPU与GPU上检测pytorch是否安装成功

    文章目录 python学习 0 安装pytorch 1 验证pytorch已经安装成功 1 1确定pytorch版本 1 2 测试pytorch基础功能 1 3 在GPU上测试pytorch 1 4使用实例代码测试 python学习 pyt
  • 历史与AES算法

    AES算法早期体现 应该追溯到明朝科举制时期 当然 这种算法不是用来答题的 而是用来作弊的 假如 张三是明朝某大户人家的公子哥 他除了以后要继承遗产外 还要考虑一个光宗耀祖的问题 但在古代 解决这个问题的唯一办法就是通过科举 可张三天生喜欢
  • VM ubuntu所在的移动硬盘意外接触不良,虚拟机异常退出后无法重启

    我的VM版本为VMware Workstation 17 Pro Ubuntu版本为22 04 一次因为虚拟机所在的移动硬盘接触不良 异常退出 重启主机后启动虚拟机 先是ubuntu ubuntu高级选项等选项让我选 然后在我选择了ubun
  • linux---sed命令

    sed命令目录 一 sed命令概念 二 sed命令的格式 1 在命令行定义编辑器命令 2 在命令行使用多个编辑器命令 3 从文件中读取编辑器命令 三 更多的替换选项 1 替换标记 有4种可用的替换标记 2 替换字符 四 使用地址 在sed编
  • 07FFMPEG的AVCodec结构体分析

    07FFMPEG的AVCodec结构体分析 概述 该结构体位于libavcodec库中的codec h中 注意 非公共区域的字段我可能不会翻译 因为翻译也不知道说什么 还是保留着原文更好 其它的结构体分析同理 1 AVCodec 结构体 t
  • 银联支付(亲测成功)

    银联支付 SDK使用 测试流程 此文为银联入门 比较简单 不涉及springboot springcloud 普通web就可以 作者是eclipse 下载demo开发包 https open unionpay com upload down
  • 朴素贝叶斯解决天气问题

    朴素贝叶斯是一种基于贝叶斯定理的分类方法 该算法是有监督的学习算法 解决分类问题 在该算法中 我们假设给定目标值时 属性之间相互条件独立 即 贝叶斯定理 对于分类问题 样本x属于类别y的概率 其中 P y 是指未使用数据训练分类器之前的y的
  • 机器学习方法篇(9)------梯度提升决策树GBDT

    每周一言 生命在于运动 无论脑力还是体力 导语 前面第3 4两节介绍了决策树 由于决策树简单有效 可解释性强 因此被包装成了一些更为高效的机器学习算法 其中最为知名的就是梯度提升决策树GBDT Gradient Boosting Decis
  • 使用RoboForm自动填写表单

    日常工作中 我们也许经常要填写一些内容一模一样的表格 很是讨厌 这里使用RoboForm可以自动填充表格 大大提高我们的工作效率 一 自动填登录页面密码 比如我想登录 右击空白处 选择 RoboForm工具栏 就可以在网页下端显示该工具栏
  • 实训十四:FTP服务器搭建

    实训十四 FTP服务器 2017 年 6 月 6 日编写 今日公布出来 一 搭建FTP服务器 检查网络是否正常 查看 和 连通性 查看主机名称 查看是否已经自动挂载光盘 清楚到光盘挂载的目录 进入挂载安装包中 查看ftp的RPM包 并是安装
  • LeetCode——1798. 你能构造出连续值的最大数目

    一 题目 给你一个长度为 n 的整数数组 coins 它代表你拥有的 n 个硬币 第 i 个硬币的值为 coins i 如果你从这些硬币中选出一部分硬币 它们的和为 x 那么称 你可以 构造 出 x 请返回从 0 开始 包括 0 你最多能
  • ADC 模数转换实验

    生活中的模拟信号 如温度 声音 压力等 需要转换为更方便储存 处理和发射的数字形式 51 单片机无法直接操作这些模拟量 其系统内部时运算都是数字量 0 和 1 因此必须将模拟量转换成数字量 数字量 指的是用一系列 0 和 1 组成的二进制代
  • 单点登录的简单应用

    单点登录 single sign on 解决了分布式下用户登录的信息管理问题 可以自行增强安全策略 并且登录的跨域也不会再成为问题 业务流程 创建两个不同的模块 一个作为客户端 一个作为登陆服务器 都需要引入redis 对于客户端代码如下
  • [java] Map循环遍历的5种方法实现

    java Map循环遍历的5种方法实现 文章目录 一 方法一 推荐 二 方法二 推荐 三 方法三 四 方法四 五 方法五 总结 一 方法一 推荐 推荐使用此方法效率比较高 Map