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. 搭建SpringCloud-Eureka 注册中心以及服务提供与调用 快速了解 SpringCloud-Eureka

    原文地址:  搭建SpringCloud-Eureka 注册中心以及服务提供与调用   纸上得来终觉浅,绝知此事要躬行啊~果然看着很easy,自己搞起来就是各种坑~各位看官,容我慢慢道来~ 关于spr ...

  2. Golang LicenseServer授权服务器的设计 与 RSA 密钥对的应用

    //TODO 待写文章 目录: 1.为什么要写授权服务器  LicenseServer 2.授权服务器的设计思路 3.授权服务器所使用到的加密技术 1.为什么要写授权服务器 为了防止别人拿到二进制后, ...

  3. 理解Docker镜像分层

    关于base镜像 base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建. 其他镜像可以之为基础进行扩展. 所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker ...

  4. UVA - 1456 Cellular Network

    题目大意: 手机在蜂窝网络中的定位是一个基本问题.如果蜂窝网络已经得知手机处于c1, c2,-,cn这些区域中的一个.最简单的方法是同一时候在这些区域中寻找手机.但这样做非常浪费带宽. 因为蜂窝网络中 ...

  5. [Functional Programming] Functional JS - Pointfree Logic Functions

    Learning notes. Video. Less than: If you use 'ramda', you maybe know 'lt, gt'.. R.lt(2, 1); //=> ...

  6. n2n的编译和运行、配置

    交叉编译: cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/CMakeToolchainFileMingw32.cmake -build ./ ../ 1.n2n  基于p ...

  7. hdu 3555 Bomb ( 数位DP)

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Subm ...

  8. Pilosa文档翻译(三)示例

    目录 简单说明 Introduction 数据模型 Data Model 映射Mapping 0列(colums) --> 1字段(field) 1列(colums) --> 1字段(fi ...

  9. 记一次免费让网站启用HTTPS的过程

    写在前面 个人网站运行将近2个月了,期间根据酷壳的一篇教程如何免费的让网站启用HTTPS做了一次,中间遇到问题就放下了.昨天孙三苗问我网站地址说要添加友链,出于好奇想看他网站长什么样,顺道也加一下友链 ...

  10. 分析轮子(九)- Cloneable.java

    注:玩的是JDK1.7版本 一:Cloneable.java 接口也是标记接口,所以,它没有任何方法和属性,实现此接口表示的意思是:可以调用 Object.java 类的 clone() 方法,进行简 ...