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 }