Map集合的嵌套

这里是Map集合嵌套Map集合

要求:
 *             传智博客
 *             Java基础班
 *                 001   张三
 *                 002   李四
 * 
 *             Java就业班
 *                 001  王五
 *                 002  田七


分析:

001 张三   :键值对
 *         Java基础班:存储学号和姓名的键值对
 *         Java就业班:
 *             传智博客:橱窗内存的是班级
 * 
 *         基础班Map  <学号,姓名>
 *         传智博客Map <班级名字,基础班Map>


代码实现:

package itcast.demo5;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapMapDemo {
	public static void main(String[] args) {
		//定义基础班集合
		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>>();
		czbk.put("Java基础班", javase);
		czbk.put("Java就业班", javaee);
		
		keySet(czbk);
		entrySet(czbk);
	}
	
	public static void keySet(HashMap<String,HashMap<String,String>> czbk) {
		//调用czbk集合方法keySet,将键存储到Set集合中
		Set<String> classNameSet = czbk.keySet();
		//迭代Set集合
		Iterator<String> classNameIt = classNameSet.iterator();
		while(classNameIt.hasNext()) {
			//classNameIt.next()获取出来的是Set集合元素,czbk集合的键
			String classNameKey = classNameIt.next();
			//czbk集合的方法获取值,值是一个HashMap集合
			HashMap<String,String> classMap = czbk.get(classNameKey);
			//调用classMap集合方法keySet,键存储到Set集合
			Set<String> studentNum = classMap.keySet();
			Iterator<String> studentIt = studentNum.iterator();
			while(studentIt.hasNext()) {
				//studentIt.next()获取出来的是classMap的键:学号
				String numKey = studentIt.next();
				//调用classMap集合中的get方法获取值
				String nameValue = classMap.get(numKey);
				System.out.println(classNameKey+"..."+numKey+"..."+nameValue);
			}			
		}
		System.out.println("-----------------------------");
	}
	
	public static void entrySet(HashMap<String,HashMap<String,String>> czbk) {
		//调用czbk集合方法entrySet方法,将czbk集合的键值对关系对象存储到Set集合中
		Set<Map.Entry<String,HashMap<String,String>>> classNameSet = czbk.entrySet();
		//迭代器迭代Set集合
		Iterator<Map.Entry<String,HashMap<String,String>>> classNameIt = classNameSet.iterator();
		while(classNameIt.hasNext()) {
			//classNameIt.next()方法,取出的是czbk集合的键值对的关系对象
			Map.Entry<String,HashMap<String,String>> classNameEntry = classNameIt.next();
			//classNameEntry方法getKey,getValue
			String classNameKey = classNameEntry.getKey();
			//获取值,值是一个Map集合
			HashMap<String,String> classMap = classNameEntry.getValue();
			//调用班级集合classMap方法entrySet,键值对关系对象存储到Set集合
			Set<Map.Entry<String,String>> studentSet = classMap.entrySet();
			//迭代Set集合
			Iterator<Map.Entry<String,String>> studentIt = studentSet.iterator();
			while(studentIt.hasNext()) {
				//studentIt.next()方法获取出的是班级集合的键值对关系对象
				Map.Entry<String,String> studentEntry = studentIt.next();
				//studentEntry方法 getKey 和 getValue
				String numKey = studentEntry.getKey();
				String nameValue = studentEntry.getValue();
				System.out.println(classNameKey+"..."+numKey+"..."+nameValue);
			}
		}
	}

}

运行结果:

Java就业班...001...王五
Java就业班...002...田七
Java基础班...001...张三
Java基础班...002...李四
-----------------------------
Java就业班...001...王五
Java就业班...002...田七
Java基础班...001...张三
Java基础班...002...李四

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值