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

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 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值