首先新建一个map集合:

        Map<String, Object> map = new HashMap<String, Object>();map.put("name","张三");map.put("age",18);map.put("address","陕西省西安市");

接下来了解概念:

Entry:由于map中存放的元素均为键值对,没办法通过for循环进行遍历,只能把key、value当成一条数据,方可遍历;
map中存在一个类叫:Entry,可以保存这种映射数据,相当于每一个键值对就是一个Entry,通过遍历Entry就可以遍历出map。
entrySet():entrySet()实现了Set接口,可以将map集合转换为set集合,并且以Entry类形式进行保存。
        Set<Map.Entry<String, Object>> entries = map.entrySet();for (Map.Entry<String, Object> mapkeyvalue:entries) {System.out.println(mapkeyvalue.getKey());System.out.println(mapkeyvalue.getValue());}
keySet():entrySet()实现了Set接口,可以将map集合中的key转换为set集合。
        Set<String> set =map.keySet();for (String key: set) {System.out.println(key);System.out.println(map.get(key));}

以上两种方法便可以实现map的遍历,以及遍历的逻辑。

下面是四种遍历方法:

//第一种:普遍使用,二次取值System.out.println("通过Map.keySet遍历key和value:");for (String key : map.keySet()) {System.out.println("key= "+ key + " and value= " + map.get(key));}//第二种System.out.println("通过Map.entrySet使用iterator遍历key和value:");Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第三种:推荐,尤其是容量大时System.out.println("通过Map.entrySet遍历key和value");for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第四种System.out.println("通过Map.values()遍历所有的value,但不能遍历key");for (String v : map.values()) {System.out.println("value= " + v);}

推荐使用第三种,这样就较好理解力map遍历的逻辑。

java中HashMap遍历详解相关推荐

  1. Java中JDBC连接数据库详解

    今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...

  2. Java中Iterator迭代器详解

    目录 一.Java中Iterator迭代器详解 1.为什么需要迭代器 2.迭代器长什么样子 3.如何使用迭代器 使用步骤: 代码演示: 迭代器可以简化为增强型for循环: 4.Iterator与Lis ...

  3. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  4. JAVA中的Random详解

    JAVA中的Random详解 首先,在JDK自带的常用的random中有两个,这俩都是产生随机数的,不过一个是util下的random,另外一个是Math下的.我们分别介绍一下 util中的rando ...

  5. java中new关键字详解

    java中new关键字详解 在java中我们可以经常使用new来创建一个对象,但是这对于初学者来说可能只会使用却不能理解new关键字和它的语法 new关键字的语法 注意使用前先导包,一般我们使用ide ...

  6. java中hashmap遍历

    java中hashmap遍历有两种方法,第一种就是将所有的key放到set中,然后通过遍历set通过key来获取value,可以选择使用迭代器遍历也可以使用增强for来遍历,第二种可以使用entrys ...

  7. Java中super关键字详解

    Java中super关键字详解 super有什么用? super什么时候不可以省略呢? super在内存图中是如何存在的呢? super使用时的注意事项 super有什么用? (1)当子类中构造方法第 ...

  8. Java中的byte详解

    Java中的byte详解 介绍 byte,即字节,由8位的二进制组成.在Java中,byte类型的数据是8位带符号的二进制数. 在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在 ...

  9. Java 中IO流详解(附实例代码/面试题)

    Java I/O流详解 前言 一.I/O流是什么? 二.IO流分类: 1. 流程图: io流对象 2. io流的优缺点: 3. io 流Java中用途有哪些? 三.一些 io 实例 四.面试题: 前言 ...

最新文章

  1. ExtJs2.0学习系列--Ext.Panel
  2. hive实现not in
  3. 设置Mac自动显示和隐藏 Dock 栏的速度
  4. 好的重构方法才能摆脱“屎山”
  5. 自己在OC考试中的试题
  6. 计算机二级选择题40分,2017年计算机二级选择题及答案
  7. python做逻辑回归r2_利用python实现逻辑回归
  8. 模糊数学模型(一): 隶属函数、模糊集合的表示方法、模糊关系、模糊矩阵
  9. Java每日一题——>739. 每日温度(蛮力法,栈方法)
  10. 技术资源分享(更新中)
  11. 征友记之---前端开发Partner
  12. 项目管理论坛_【一线】这届项目管理论坛硬货满满!
  13. xamarin android 微信,转换微信SDK为Xamarin绑定库 Android5.5.8 iOS1.8.6.2
  14. 1237:求排列的逆序数
  15. 关于bfs的原理和应用
  16. [WARNING] Node 127.0.0.1:6380 has slots in migrating state (5798). [WARNING] Node 127.0.0.1:6382 has
  17. arm服务器芯片主板,Broadcom的Arm服务器芯片获重生:Cavium发布双插槽ThunderX2
  18. 设计模式(五)【Bridge模式】
  19. 在线JSON转toml工具
  20. ANSYS FLUENT非结构体网格数值计算及后处理——换热器

热门文章

  1. Spark 下操作 HBase
  2. selenium之 chromedriver版本对照表
  3. iOS - 实现语言本地化/国际化
  4. Hyper-V的管理与使用之一:添加功能
  5. iOS事件机制(一)
  6. 腾达tenda无线路由器网络拓展wds功能实战配置手册
  7. 获取Java接口的所有实现类
  8. 写一个工具生成数据库实体类
  9. 74cms 注入exp
  10. 分治策略之最大子数组问题