首页 > 其他分享 >Map的遍历方式

Map的遍历方式

时间:2024-09-30 17:50:50浏览次数:12  
标签:Map 遍历 方式 map value key println

1.是什么

        在Java中,Map接口提供了多种遍历方式,以便你可以根据需要选择最适合的方法来访问和操作存储在映射中的键值对。以下是Map的几种常见遍历方式,以及每种方式的详细解释和示例代码。

1. 使用entrySet()遍历

        这是最常用的遍历方式,因为它同时提供了键和值,并且性能较好。entrySet()方法返回一个包含映射中所有键值对的Set视图。

Map<String, Integer> map = new HashMap<>();  
map.put("apple", 1);  
map.put("banana", 2);  
map.put("orange", 3);  
  
for (Map.Entry<String, Integer> entry : map.entrySet()) {  
    String key = entry.getKey();  
    Integer value = entry.getValue();  
    System.out.println("Key: " + key + ", Value: " + value);  
}

2. 使用keySet()遍历

        如果你只需要键,或者想要通过键来获取值,可以使用keySet()方法。它返回一个包含映射中所有键的Set视图。

for (String key : map.keySet()) {  
    Integer value = map.get(key);  
    System.out.println("Key: " + key + ", Value: " + value);  
}

3. 使用values()遍历

如果你只需要值,可以使用values()方法。它返回一个包含映射中所有值的Collection视图。

for (Integer value : map.values()) {  
    System.out.println("Value: " + value);  
}

注意,这种方式无法直接获取到与值对应的键。

4. 使用Java 8的forEach方法(Lambda表达式)

Java 8引入了新的forEach方法,可以使用Lambda表达式来遍历Map

// 遍历键值对  
map.forEach((key, value) -> {  
    System.out.println("Key: " + key + ", Value: " + value);  
});  
  
// 或者,如果你只需要键或值  
map.keySet().forEach(key -> System.out.println("Key: " + key));  
map.values().forEach(value -> System.out.println("Value: " + value));

5. 使用Iterator遍历

虽然不常用,但你也可以使用Iterator来遍历MapentrySet()keySet()values()

Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();  
while (iterator.hasNext()) {  
    Map.Entry<String, Integer> entry = iterator.next();  
    String key = entry.getKey();  
    Integer value = entry.getValue();  
    System.out.println("Key: " + key + ", Value: " + value);  
}

选择合适的遍历方式

  • 如果你需要同时访问键和值,entrySet()是最优选择。
  • 如果你只需要键或值,使用keySet()values()可能更简洁。
  • Java 8的forEach方法和Lambda表达式提供了更简洁、更现代的遍历方式。
  • Iterator遍历方式较为传统,但在某些需要手动控制遍历过程的场景下可能仍然有用。

选择哪种遍历方式取决于你的具体需求和代码风格偏好。

标签:Map,遍历,方式,map,value,key,println
From: https://blog.csdn.net/2401_83418369/article/details/142661791

相关文章

  • Windows 中的硬链接、目录联接(软链接)、符号链接、快捷方式
    在Linux文件系统中经常提及硬链接(HardLink)和符号链接(SymbolicLink),Windows中也可以创建链接,但由于丰富的图形界面操作,很少提及链接。Windows的NTFS文件系统支持三种链接:硬链接(HardLink)、符号链接(SymbolicLink)和目录链接(junctionpoint),此外还有一个大家非常熟悉链......
  • 2507 城市和州 map
    #include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=2e5+10;//使用map来记录每个城市前两个字母和州的组合出现的次数map<string,int>vis;stringa,b;intn,ans;intmain(){//读取城市的数量cin>>n;for(inti......
  • 2246 记录保存 map
    解决思路 读取输入:读取每组奶牛的名字。 排序:对每组奶牛的名字进行排序,以确保相同的组合总是以相同的顺序出现。 记录出现次数:使用 map 记录每组奶牛组合出现的次数。 计算最大次数:遍历 map,找到出现次数最多的组合。#include<bits/stdc++.h>#definell......
  • 通过 DISM 命令注入驱动程序到 WIM 镜像的步骤如下:使用 $OEM$ 文件夹是一个简便的方式
    通过DISM命令注入驱动程序到WIM镜像的步骤如下:1.挂载WIM镜像使用以下命令挂载WIM镜像:bashCopyCodeDism/Mount-Wim/WimFile:install.wim/Index:2/MountDir:mount/WimFile: 指定要挂载的WIM文件路径。/Index: 指定要挂载的映像索引(例如,2)。/MountDir: 指......
  • 【hot100-java】【二叉树的层序遍历】
    二叉树BFS队列实现/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,......
  • YOLOv8训练损失、mAP画图功能 | 支持多结果对比,多结果绘在一个图片(科研必备)
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)YOLOv8训练损失、mAP画图功能|支持多结果对比,多结果绘在一个图片(科研必备)......
  • PbootCMS全站模板date时间标签/时间格式常见的8种调用方式
    为了更好地展示PbootCMS中不同时间格式的使用方法,可以将上述信息汇总成一个表格。以下是详细的表格,展示了列表页和内容详情页中不同的时间格式及其效果。时间格式汇总表标签名功能描述格式示例效果示例[list:date]列表页时间(默认格式)[list:date]2021-12-0609:1......
  • C#名片识别接口集成方式、文字识别API
    名片识别接口通常是指通过OCR(光学字符识别)技术,对名片上的信息进行自动识别和提取的API服务。它能够快速、准确地将名片中的姓名、职位、公司、电话、邮箱、地址等信息转化为结构化的电子数据。基于深度学习算法的名片识别接口通常由第三方服务商来提供,如翔云等,标准化HTTP......
  • Altium Designer脚本的执行方式
       在AltiumDesigner脚本系统中执行脚本支持多种方法 1.点击工具栏的运行工具(蓝色向右三角图标)可以执行脚本程序;2.点击菜单栏Run->Run可以执行脚本程序;3.在脚本编辑器中,按键盘的F9键可以执行脚本程序;4.通过菜单栏执行脚本程序(需要将程序添加到菜单栏中);5.通过工具栏......
  • Altium Designer脚本的执行方式
        在AltiumDesigner脚本系统中执行脚本支持多种方法1.点击工具栏的运行工具(蓝色向右三角图标)可以执行脚本程序;2.点击菜单栏Run->Run可以执行脚本程序;3.在脚本编辑器中,按键盘的F9键可以执行脚本程序;4.通过菜单栏执行脚本程序(需要将程序添加到菜单栏中);5.通过工具......