------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
/*
* 集合的嵌套的形式
* 黑马集合,存储的班级的小集合
* 班级集合,存储学号姓名*/
import java.util.*;
public class Bh {
public static void main(String[] args) {
//定义黑马的集合
HashMap<String,HashMap<String,String>> hm = new HashMap<String, HashMap<String,String>>();
//定义基础集合
HashMap<String,String> javase = new HashMap<String, String>();
//就业班集合
HashMap<String,String> javaee = new HashMap<String, String>();
//存储基础和就业的学生
javase.put("001", "lisi");
javase.put("002", "zhangsan");
javaee.put("005","wangwu");
javaee.put("006","zhaoliu");
//班级集合,存储到黑马集合
hm.put("基础班", javase);
hm.put("就业班", javaee);
// System.out.println(hm);
entrySet(hm);
}
//定义方法实现嵌套集合的迭代entrySet
private static void entrySet(HashMap<String,HashMap<String,String>> map){
//获取黑马集合的键值对关系对象Map.Entry ,关系对象存储到Set集合, 黑马集合方法entrySet、
Set<Map.Entry<String, HashMap<String,String>>> set = map.entrySet();
//迭代Set集合
Iterator<Map.Entry<String, HashMap<String,String>>> it = set.iterator();
while(it.hasNext()){
//it.next()获取到的是黑马集合的键值对关系对象Entry
Map.Entry<String, HashMap<String,String>> me = it.next();
//通过键值对关系对象,获取键,获取值
String className = me.getKey();
//值是Map集合,定义Map集合来接收
HashMap<String,String> classValue = me.getValue();
//classValue迭代集合,存储的是学号和姓名,entrySet方法,获取键值对关系对象,存储Set集合
Set<Map.Entry<String, String>> classSet = classValue.entrySet();
//迭代classSet集合
Iterator<Map.Entry<String, String>> classIt = classSet.iterator();
while(classIt.hasNext()){
//it.next()获取的是班级集合的键值对关系对象
Map.Entry<String, String> meClass = classIt.next();
//班级集合的键值对对象,获取键值对
String num = meClass.getKey();
String name = meClass.getValue();
System.out.println(className+"..."+num+"..."+name);
}
}
}
//*****************************************************************************************
//定义方法实现嵌套集合的迭代 keySet
private static void keySet(HashMap<String,HashMap<String,String>> map){
//将黑马集合的键,存储到Set集合
Set<String> set = map.keySet();
//迭代Set集合
Iterator<String> it = set.iterator();
while(it.hasNext()){
//it.next()获取的是String类型,班级的名字,黑马集合的键
String classKey = it.next();
//使用黑马集合的get方法获取值,值是一个Map集合,定义Map接收
HashMap<String,String> classValue = map.get(classKey);
//迭代班级集合classValue,keySet方法,将班级集合的键存储到Set集合
Set<String> classSet = classValue.keySet();
//迭代班级集合
Iterator<String> classIt = classSet.iterator();
while(classIt.hasNext()){
//classIt.next()获取的班级集合的键,学号
String num = classIt.next();
String name = classValue.get(num);
System.out.println(classKey+"..."+num+"..."+name);
}
}
}
}