集合嵌套——Map嵌套Map
定义两个Map类型集合,然后将其嵌套进另一个定义的Map集合中,怎莫做来实现遍历哪?废话不多说,看代码:
public static void main(String[] args) {
//定义Map集合中的元素
Map<String, String> map1=new HashMap<String, String>();
map1.put("001", "abc");
map1.put("002", "def");
map1.put("003", "opq");
Map<String, String> map2=new HashMap<String, String>();
map2.put("004", "abc");
map2.put("005", "def");
map2.put("006", "opq");
//定义一个Map集合将前两个集合嵌套入这个Map集合中
Map<String, Map<String, String>> map=new HashMap<String, Map<String,String>>();
map.put("第一组", map1);
map.put("第二组", map2);
keySet(map);//调用自定义keySet()方法实现对嵌套Map的遍历操作
}
public static void keySet(Map<String, Map<String, String>> map) {
//定义一个set集合将大Map的键放入set集合中
Set<String> set=map.keySet();
Iterator<String> bigIt=set.iterator();//遍历set集合
while(bigIt.hasNext()) {
String mapKey=bigIt.next();//将set集合中元素逐个赋值给自定义变量mapKey
Map<String, String> smallMap=map.get(mapKey);//调用map的get()方法将mapKey的值放入自定义的smallMap集合中
Set<String> smallSet=smallMap.keySet();//将smallMap集合的的键放入set集合,
Iterator<String> smallIt=smallSet.iterator();//对smallSet集合开始进行遍历操作
while(smallIt.hasNext()) {
String key=smallIt.next();//定义变量将smallSet中的元素逐个赋值给key
String value=smallMap.get(key);//集合smallMap调用get()方法将键是key的值赋值给自定义变量value,
System.out.println(mapKey+": "+key+"=="+value);//通过while循环打印,得到MapMap集合嵌套的键与值
}
}
}
打印结果如下
第一组: 001==abc
第一组: 002==def
第一组: 003==opq
第二组: 004==abc
第二组: 005==def
第二组: 006==opq