1 public static voidmain(String[] args) {2

3 HashMap> map = new HashMap>();4

5 HashMap mapin1 = new HashMap();6 mapin1.put(new Person("小绿1", 20), "Java0723(1)");7 mapin1.put(new Person("小白1", 21), "Java0723(1)");8

9 HashMap mapin2 = new HashMap();10 mapin2.put(new Person("小绿2", 20), "Java0723(2)");11 mapin2.put(new Person("小白2", 21), "Java0723(2)");12

13 HashMap mapin3 = new HashMap();14 mapin3.put(new Person("小绿3", 20), "Java0723(3)");15 mapin3.put(new Person("小白3", 21), "Java0723(3)");16

17 map.put("1", mapin1);18 map.put("2", mapin2);19 map.put("3", mapin3);20

21 //System.out.println(map);22

23 //方法一24 //foreachHashMap1(map);25 //方法二26 //foreachHashMap2(map);27 //方法三28 //foreachHashMap3(map);29 //方法四

30 foreachHashMap4(map);31 }32

33 //方法一 增强for 加通过 key 找 value

34 public static void foreachHashMap1(HashMap>map) {35 //获取第一层的key 的 Set 集合

36 Set set =map.keySet();37 for(String str : set) {38 //str :第一层的key39 //通过key获取第一层的值

40 HashMap value = map.get(str);//第一层的value41 //遍历第一层的值42

43 //获取第二层的key 的 Set 集合

44 Set setin =value.keySet();45 for(Person p : setin) {46 //p:第二层的 key

47

48 String valuein = value.get(p); //第二次的值

49 System.out.println("外键:" + str + ",外值:" + value + ",内键:" + p + ",内值:" +valuein);50 }51 }52 }53

54 //方法二 Iterator 迭代器

55 public static void foreachHashMap2(HashMap>map) {56 //获取第一层的key 的 Set 集合

57 Set set =map.keySet();58 //把该集合转成 Iterator 集合 用于迭代

59 Iterator it =set.iterator();60 while(it.hasNext()) {61 //获取第一层的 key 并存储

62 String key =it.next();63 //通过第一层的 key 获取 第一层的 value

64 HashMap value =map.get(key);65

66 //遍历第二层value67

68 //获取第二层 key 的 Set 集合

69 Set setin =value.keySet();70 //把该集合转成 Iterator 集合 用于迭代

71 Iterator itin =setin.iterator();72

73 while(itin.hasNext()) {74 //获取第二层的 key 并存储

75 Person keyin =itin.next();76 //通过该 key 获取第二层的 value

77 String valuein =value.get(keyin);78 System.out.println("外键:" + key + ",外值:" + value + ",内键:" + keyin + ",内值:" +valuein);79 }80 }81 }82

83 //方法三 Map.Entry 加 增强 for

84 public static void foreachHashMap3(HashMap>map) {85

86 Set>> set =map.entrySet();87 for (Map.Entry>mapEntry : set) {88 String key = mapEntry.getKey();//第一层的 key

89 HashMap value = mapEntry.getValue();//第一层的 value

90

91 Set> setin =value.entrySet();92 for (Map.EntrymapEntryin : setin) {93 Person keyin = mapEntryin.getKey(); //第二层的 key

94 String valuein = mapEntryin.getValue();//第二层的 value

95 System.out.println("外键:" + key + ",外值:" + value + ",内键:" + keyin + ",内值:" +valuein);96 }97 }98 }99

100 //方法四 Map.Entry 加 增强 Iterator

101 public static void foreachHashMap4(HashMap>map) {102 Set>> set =map.entrySet();103 //将 此 set 集合转成 Iterator 迭代集合

104 Iterator>> it =set.iterator();105 while(it.hasNext()) {106 //获取第一层 的 对象

107 Map.Entry> Entry =it.next();108 String key = Entry.getKey();//第一层的 key

109 HashMap value = Entry.getValue();//第一层的 value

110

111 Set> setin =value.entrySet();112 Iterator> itin =setin.iterator();113 while(itin.hasNext()){114 Map.Entry Entryin =itin.next();115 Person keyin = Entryin.getKey();//第二层的key

116 String valuein = Entryin.getValue();//第二层的value

117 System.out.println("外键:" + key + ",外值:" + value + ",内键:" + keyin + ",内值:" +valuein);118 }119

120 }121 }

java list map嵌套_Java 集合-Map集合嵌套 的遍历四种方式相关推荐

  1. Map遍历四种方式及其效率

    目录 1.Map介绍 2.Map数据结构及扩容 2.1.数组:寻址容易,插入和删除元素困难 2.2.链表:寻址困难,插入和删除元素容易 2.3.Map数组长度默认16,扩容负载因子为0.75 3.Ma ...

  2. java中写入文件_java中创建、写入文件的5种方式

    在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法. Files.newBufferedWriter(Java 8) Files. ...

  3. java class 生成对象_Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.refl ...

  4. java native函数库_Java 层调用 Native 层函数的两种方式

    概述 Java 层如何调用Native层函数,大家都应该知道使用JNI(Java 本地接口). 通过在java层声明native方法,然后遵守JNI规范命名Native函数,即可建立Java层nati ...

  5. java 线程同时启动_java多个线程同时启动的两种方式

    [背景]今天遇到一个并发问题,为了在开发环境复现这个bug,需要让多个线程同时执行到某条语句. [解决方案] java1.5的concurrent包下的CyclicBarrier 和 CountDow ...

  6. Java List遍历四种方式 Lambda表达式遍历

    package com.config; import java.util.ArrayList; import java.util.List; /** for循环遍历之Lambda表达式遍历 */ pu ...

  7. java配置文件实现方式_java相关:详解Spring加载Properties配置文件的四种方式

    java相关:详解Spring加载Properties配置文件的四种方式 发布于 2020-4-29| 复制链接 摘记: 一.通过 context:property-placeholder 标签实现配 ...

  8. Map集合遍历的四种方式理解和简单使用

    Map集合遍历的四种方式理解和简单使用 ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据 ...

  9. java map 迭代遍历_java 遍历Map的四种方式

    java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1.方 ...

最新文章

  1. C#的Equals不区分大小写
  2. 如何授权用户访问网站 - [MOSS 2007应用日记]
  3. C语言表示一元四次函数,论c语言程序设计 第四次讨论.ppt
  4. 带你全面认识 Linux
  5. 计算机与应用化学怎么投稿,计算机与应用化学杂志
  6. JAVA软件工程师应该具备的技能有哪些?
  7. 推荐一款优雅的日历控件
  8. [文摘20071224]七条不可不知的生存法则
  9. pwn环境搭建_[原创]CTF_Pwn环境搭建
  10. nginx详解反向代理,负载均衡,LNMP架构上线动态网站
  11. IntelliJ IDEA 记学习笔《Patch 创建补丁》
  12. 素数表(Eratosthenes)
  13. 单片机常用芯片总结(一)——LCD1602液晶屏
  14. BZOJ1050 HAOI2006 旅行comf 生成树+枚举
  15. 华为手机助手连接不上电脑怎么办
  16. 栈(stack)C语言实现(有详细注释讲解)
  17. 计算机的应用范围图表,Excel2013中各类曲面图气泡图雷达图等图表的效果及功能说明...
  18. 可行性研究报告-机房收费系统
  19. python怎么算积分_python求积分
  20. 怎样提高并保持百度快照的更新频率

热门文章

  1. 美团推出语音应用平台 已与奔驰、小米等企业达成合作
  2. 微信灰度测试“相关阅读”功能 公众号文章下推荐延伸内容
  3. 卸任后的马云“忙”坏了,健美大赛、蹦迪、修空调、种蘑菇,真相看懵了
  4. 真相了!为什么华为不惜成本也要支持外置存储卡扩展?
  5. 一加WarpTen技术今日发布:全新旗舰一加7将搭载
  6. 教育部:浙江大学等35所高校新增人工智能本科专业
  7. 华为将推出智能显示屏产品:不同于传统电视机
  8. vivo V15 Pro宣传片放出:前置3200万像素弹出式摄像头
  9. 支付宝最不想看到的:当“集五福”变成赚钱生意 有人日入千元!
  10. U-Boot提供的命令【整理】