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

public class MapDome {

     //  Map 嵌套存储Map
    //      aaa
    //        java班
    //          001 郭嘉
    //          002 神郭嘉
    //        javahoodp班
    //          001 黄月英
    //          002 神黄月英
    

    //      java班 :存学号和名字
    //      javahoodp班:存学号和名字
    //      学校:存的是班级
    //          java班<学号,姓名>
    //          aaaMap<班级名字,java班>
   
    public static void main(String[] args) {

//定义Java班的集合
        HashMap<String, String> java=new HashMap<String, String>();

    //定义java班级的学生

java.put("001","郭嘉");
            java.put("002", "神郭嘉");

    //定义hdoop班的集合
            
        HashMap<String, String> hdoop=new HashMap<String,String>();

    //向hdoop班保存学生

hdoop.put("001","黄月英");
            hdoop.put("002", "神黄月英");

  //定义学校的集合

HashMap<String, HashMap<String, String>> a=new HashMap<String,HashMap<String, String>>();

    //定义学校是容器    键是班级的名字  值是两个

a.put("java班", java);
            a.put("hdoop班", hdoop);

      //调用集合aaa  的方法    entrySet 将学校集合的键封装到Set集合中
            Set<Entry<String, HashMap<String, String>>> Set=a.entrySet();

    //增强for循环遍历集合

    //获取的是学校的集合

for(Entry<String, HashMap<String, String>> s:Set){

    //获取getkey 和getvalue的值

String key = s.getKey();
                HashMap<String, String> value = s.getValue();
                
                System.out.println(key);
                
                现在获取的是两个班级的集合

Set<Entry<String, String>> enSet = value.entrySet();

      //使用增强for循环,循环Set集合

for(Entry<String, String>l:enSet){
                    String key2 = l.getKey();
                    String value2 = l.getValue();
                    System.out.println(key2+"         "+value2);
                }
            }

System.out.println("+++++++++++++++++++++++++++++++++++");

    //使用迭代  set集合
            Iterator<Entry<String, HashMap<String, String>>> it = Set.iterator();

while (it.hasNext()) {

Entry<String, HashMap<String, String>> next = it.next();
                String key = next.getKey();
                HashMap<String, String> value = next.getValue();
                
            Set<Entry<String, String>> enSet = value.entrySet();
            
            Iterator<Entry<String, String>> ite = enSet.iterator();

while (ite.hasNext()) {

Entry<String, String> next2 = ite.next();
                String key2 = next2.getKey();
                String value2 = next2.getValue();
                System.out.println(key2+"         "+value2);
                
            }
            
            }
                
                
            }

}

Map 嵌套存储Map的更多相关文章

  1. 【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)

    题意: 输入两个正整数N和K(N<=40000,K<=2500),分别为学生和课程的数量.接下来输入K门课的信息,先输入每门课的ID再输入有多少学生选了这门课,接下来输入学生们的ID.最后 ...

  2. android开发之-数据存储Map、HashMap、Hashtable、concurenthashmap区别

    选择一个map进行软件基础数据初始化操作,要求第一次初始化后,不修改数据,可能会出现静态类被回收,然后在进行初始化操作? 1.Map :接口 /** * A {@code Map} is a data ...

  3. bboss oreach循环嵌套遍历map

    foreach循环嵌套遍历mapforeach嵌套dsl脚本定义 <property name="dynamicInnerDsl"> <![CDATA[{ ## ...

  4. Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套

    原文链接:http://www.itjhwd.com/java_json/ 代码 package com.itjh.mmp.util; import java.io.BufferedReader; i ...

  5. mybatis嵌套map或者map嵌套的parameterType

    Spring的重要注解 https://www.cnblogs.com/rolandlee/p/11014923.html 一:首先是map嵌套: 例1: 例2: 总结: paramterType无论 ...

  6. 用set、map等存储自定义结构体时容器内部判别各元素是否相同的注意事项

    STL作为通用模板极大地方便了C++使用者的编程,因为它可以存储任意数据类型的元素 如果我们想用set与map来存储自定义结构体时,如下 struct pp { double xx; double y ...

  7. java中遍历MAP,嵌套map的几种方法

    java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>();    map.put("us ...

  8. Map java中的map 如何修改Map中的对应元素

    Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.         Map的接口         Map ...

  9. Java基础知识强化之集合框架笔记51:Map集合之Map集合的功能概述与测试

    1. Map集合的功能概述 (1)添加功能 V put(K key,V value):添加元素.这个其实还有另一个功能?先不告诉你,等会讲 如果键是第一次存储,就直接存储元素,返回null 如果键不是 ...

随机推荐

  1. 导入的eclipse 中 maven项目,项目中已经加入lombok.jar包,但是不能编译成功

    原文地址:http://bbs.csdn.net/topics/390854507/ 答案是最后一个:单击工程名  Maven->Update Project

  2. CentOS7 安装FastDFS分布式文件系统

    CentOS7 安装FastDFS分布式文件系统 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家 ...

  3. EF Migrations error: No connection string named 'MpDb' could be found in the application config file.

    solution:  update-database 命令查找连接字符是在当前启动项目中找的 确保启动项目中connectiongString配置存在.

  4. masonry 基本用法

    一:masonry 基本用法 fistView=[[UIView alloc] init]; fistView.backgroundColor=[UIColor redColor]; [self.vi ...

  5. Eclipse SVN clean up失败解决方法

    错误信息: 1.下载sqlite3.zip  (https://www.sqlite.org/2019/sqlite-tools-win32-x86-3270200.zip) 只需用到解压后的exe文 ...

  6. 当使用 SelfHost 的 OWIN 承载 SignalR 时,重启 OWIN 后,SignalR 不能正常工作

    需要在初始化时,重新对 Resolver 赋值一个新的实例: public class Startup { public void Configuration(IAppBuilder app) { v ...

  7. jquery.cookie.js写入的值没有定义

    这个是插件的基本语法,你写的没错,错就错在你肯定是在本地测试的,cookie是基于域名来储存的.意思您要放到测试服务器上或者本地localhost服务器上才会生效.cookie具有不同域名下储存不可共 ...

  8. Python 词典增加和删除

    增加 dict 里面的属性,必须先初始化 key,然后使用 append 添加值 #!/usr/bin/python3 message = dict() #message = { # "10 ...

  9. Caffe多线程环境下检测缓慢问题

    对于多线程运行环境以及Web框架下(其实也相当于多线程)Caffe运行缓慢的原因可能是仅在某一个线程中设置caffe.set_mode_gpu().但是该操作不会影响其他线程,此时其他线程还是CPU模 ...

  10. PowerDesigner 中模型设计导出Excel表格

    今天项目做设计,客户要看数据设计,需要到处Excel表格.去网上搜索下,把使用总结如下: 已经完成设计的pd设计 打开pd,快捷键Ctrl + Shift + X或者Tools>Exectue ...