【Java学习004】Map集合遍历

2023-10-27

方式1使用Map.Entry进行遍历

在for循环中使用【Map.Entry】对象实现Map对象的遍历。

public class Test {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");


        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            int key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + ": " + value);
        }
    }
}

方式2使用Map.keySet进行遍历

通过键值查找的方式进行遍历

public class Test {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");

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

方式3使用迭代器(Iterator)进行遍历

可以对两种对象(【Map.entrySet】和【Map.keySet】)使用迭代器进行迭代。

public class Test {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");

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

方式4使用for-each进行遍历

使用 for-each 循环遍历 key 或者 values,一般适用于只需要 Map 中的 key 或者 value 时使用。性能上比 entrySet 较好。

public class Test {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "a");
        map.put(2, "b");
        map.put(3, "c");

        map.forEach((k, v) -> System.out.println(k + ": " + v));
    }
}

个人总结

  1. 如果是JDK8,推荐使用方式4进行遍历;
  2. 最常用方式1进行遍历;
  3. 使用迭代器的好处在于调用方总是以统一的方式遍历各种集合类型,而不必关心它们内部的存储结构。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java学习004】Map集合遍历 的相关文章

随机推荐

  • 设计模式之四 --- 建造(Builder)模式

    1 基本概念 建造 Builder 模式是一种对象构建的设计模式 它可以将复杂对象的建造过程抽象出来 抽象类别 使这个抽象过程的不同实现方法可以构造出不同表现 属性 的对象 2 简单分析 我们先来看一下该设计模式的UML结构图 上图是Str
  • align-content、justify-content、align-items三个属性的作用和效果

    一 align content属性 作用 设置同一列子元素在Y轴的对齐方式 属性值 描述 flex start 排列在当前列的最上方 flex end 排列在当前列的最下方 center 排列在当前列的中间位置 space between
  • C++学习(三十二)初始化列表

    从概念上来讲 构造函数的执行可以分成两个阶段 初始化阶段和计算阶段 初始化阶段先于计算阶段 初始化阶段 所有类类型 class type 的成员都会在初始化阶段初始化 即使该成员没有出现在构造函数的初始化列表中 计算阶段 一般用于执行构造函
  • 使用open3d将obj格式转为pcd格式并保存(模型转点云)

    import open3d as o3d mesh o3d io read triangle mesh bunny obj pcd mesh sample points uniformly number of points 10000 o3
  • H5 video 播放器demo

    H5 video 播放器demo 前言 最近在做一个wap端的项目 需要视频播放功能 大家也知道wap对flash支持很差 所以优先考虑使用h5播放器video 在这里我介绍用video实现视频播放方法 之后在介绍几个插件和第三方视频实现方
  • 如何在 Rust 中运行 Lua 程序

    在Rust中 你可以使用rust lua这个库来运行Lua程序 下面是一个简单的例子 首先 将 rust lua 添加到你的 Cargo toml 文件中 dependencies rust lua 0 36 然后 在你的Rust代码中 你
  • VS C++ 程序运行错误: 0xc0...07b错误等

    问题1的出现 找不到动态库 解决方式 这个问题就是你需要找到这个动态库 并且放到exe目录同级目录 问题2的出现 今天在使用动态库的时候发现了一点问题 就是我修改了我原来的库文件 当我在另外的项目中使用的时候 我只进行了lib库和头文件的替
  • Linux中find命令基本使用方法

    Linux中find命令是系统中查找文件的命令 可以帮助用户快速找出自己所需要的文件 通过文件名查找 find name 文件名 find etc name passwd 查找 etc目录下的passwd 通过文件嵌套层数查找 find m
  • python画图数据的平均值怎么算的_绘图平均值和标准偏差

    Demo of errorbar function with different ways of specifying error bars Errors can be specified as a constant value as sh
  • Matlab利用模拟退火算法求解旅行商(TSP)问题

    简介 先引入一个例题 旅行商问题 TSP 假设有一个旅行商人要拜访n个城市 已知这n个城市的坐标 他必须选择所要走的路径 路径的限制是每个城市只能拜访一次 而且最后要回到原来出发的城市 路径的选择目标是要求得的路径路程为所有路径之中的最小值
  • git 查看/修改用户名、密码

    用户名和邮箱地址的作用 用户名和邮箱地址是本地git客户端的一个变量 不随git库而改变 有朋友说这里没有git修改密码的 特意在这里补充一下 git config global credential helper store 输入这个命令
  • dup2函数:复制文件描述符示例

    dup函数用于复制文件描述符 这样使得两个描述符指向同一个文件 这就类似于linux中的硬链接 此时内核会在内部维护一个计数为2 如果关闭其中一个不能真正的关闭文件 当计数为0时即两个文件描述符都被关闭 这个文件才真正被关闭 dup2函数作
  • LeetCode打卡——62.不同路径

    LeetCode打卡 62 不同路径 题目描述 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 问总共有多少条不同
  • 微信支付:JSAPI或APP拉起支付,return_msg=签名错误

    1 发送给微信的参数xml 下图中的商户key就是微信后台设置的appsecret 2 复制到 微信支付接口签名校验工具 本文适用如下图是检测通过的 如果跟我一样 检测通过了 但下单接口仍返回 签名错误 唯一的问题就是 签名方法传的key用
  • 那些你不知道的表结构设计思路--开源软件诞生9

    ERP表结构的设计 第9篇 用日志记录 开源软件 的诞生 赤龙 ERP 开源地址 点亮星标 感谢支持 与开发者交流 kzca2000 码云 https gitee com redragon redragon erp GitHub https
  • 【JavaScript高级】手写apply()、call()、bind()

    文章目录 手写之前 apply call 封装函数实现apply和call bind 参考 手写之前 我们有一个函数foo 已知 foo的隐式原型是绑定在Function的显式原型上的 Function是一个构造函数 function fo
  • IPSec技术的基本原理详解及应用场景

    IPSec技术的基本原理详解及应用场景 IPSec简介 IPSec的英文是Internet Protocol Security 是一个协议包 通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族 一些相互关联的协议的集合 IPs
  • rtx 3060 notebook cuda 与 gpu驱动安装

    cudnn的下载与安装 需要用户登录nvidia 然后再进入该地址 https developer nvidia com rdp cudnn archive https developer download nvidia cn comput
  • 配置Nginx正向代理

    需求 UAT需要在10 xx xx xx部署一个正向代理 端口号是80 要访问的外网域名为http api cn xxx com 1 查看80端口和外网是否畅通 telnet 10 xx xx xx 80 curl http api cn
  • 【Java学习004】Map集合遍历

    方式1使用Map Entry进行遍历 在for循环中使用 Map Entry 对象实现Map对象的遍历 public class Test public static void main String args Map