package cn.itcast.maptest;
/*
* 传智播客
基础班
001 张三
002 李四
就业班
001 王五
002 赵六
*/
import java.util.*;
public class MapMapTest {
public static void main(String[] args) {
//创建2个班级容器,基础班,就业班,存储的是学号,姓名
HashMap<String,String> javase = new HashMap<String, String>();
HashMap<String,String> javaee = new HashMap<String, String>();
//两个班级容器中,存储学生信息
javase.put("001", "张三");
javase.put("002", "李四");
javaee.put("001", "王五");
javaee.put("002", "赵六");
//创建传智播客容器,存储班级集合,键班级名字,值是班级的集合容器
HashMap<String,HashMap<String,String>> czbk =
new HashMap<String, HashMap<String,String>>();
//将班级集合,存储到传智播客集合中0
czbk.put("基础班", javase);
czbk.put("就业班", javaee);
// keySet(czbk);
entrySet(czbk);
}
/*
* 定义方法,迭代Map集合,采用entrySet方式
*/
public static void entrySet(HashMap<String,HashMap<String,String>> czbk){
//传智播客,大集合,班级小集合
//大集合方法entrySet,将大集合的键值对关系对象,存储到Set集合
Set<Map.Entry<String, HashMap<String,String>>> set = czbk.entrySet();
//迭代Set集合,获取大集合的键值对关系对象
Iterator<Map.Entry<String, HashMap<String,String>>> it = set.iterator();
while(it.hasNext()){
//it.next方法,获取是Set元素,Set存储的是大集合的键值对关系对象
Map.Entry<String, HashMap<String,String>> entry = it.next();
//通过Entry对象方法getKey获取键,getValue获取值
String classNameKey = entry.getKey();
HashMap<String,String> classMap = entry.getValue();
//迭代小集合 classMap
//使用小集合方法entrySet,将小集合键值对关系对象,存储Set集合
Set<Map.Entry<String, String>> setClass = classMap.entrySet();
Iterator<Map.Entry<String, String>> itClass = setClass.iterator();
while(itClass.hasNext()){
//迭代器的方法next,获取出来的是小集合的键值对关系对象
Map.Entry<String, String> classEntry = itClass.next();
//classEntry对象,getKey.getValue获取键值对
String numberKey = classEntry.getKey();
String nameValue = classEntry.getValue();
System.out.println(classNameKey+".."+numberKey+".."+nameValue);
}
}
}
/*
* 定义方法,迭代Map集合,采用keySet方式
*/
public static void keySet(HashMap<String,HashMap<String,String>> czbk){
//传智播客,大集合,班级小集合
//大集合,方法keySet,将大集合中的键,存储到Set集合
Set<String> set = czbk.keySet();
//迭代set集合
Iterator<String> it = set.iterator();
while(it.hasNext()){
//迭代器方法next获取出现的是大集合中的键
//大集合中的键,存储的实际数据班级名字
String classNameKey = it.next();
//根据键获取值,大集合方法get,值是存储班级的小集合
HashMap<String,String> classMap = czbk.get(classNameKey);
//班级集合classMap方法keySet,将班级集合中的键,学号存储Set集合
Set<String> setClass = classMap.keySet();
Iterator<String> itClass = setClass.iterator();
while(itClass.hasNext()){
//迭代器itClass方法next获取出来的是小集合的键
//班级集合键,存储的实际数据学号
String numberKey = itClass.next();
//通过小集合方法get,通过键获取值,姓名
String nameValue = classMap.get(numberKey);
System.out.println(classNameKey+".."+numberKey+".."+nameValue);
}
}
}
} |
|