package cn.lijun.demo2;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Set; public class MapMapDemo {
/*Map 嵌套存储Map
* aaa
* java97 班
* 001 小明
* 002 小红
* javaHoodp 班
* 001 张三
* 002 李四
*
* java班 :存学号和名字
* javahoodp:存学号和名字
* aaa 存班级
*
*/
//方法一 :keySet方法 迭代
public static void main(String[] args) {
//存放java97班
HashMap<String,String> java=new HashMap<String,String>();
java.put("001", "小明");
java.put("002","小红");
//存放hashhoodp
HashMap<String,String> javahoodp=new HashMap<String,String>();
javahoodp.put("001", "张三");
javahoodp.put("002", "小红");
//存放aaa
HashMap<String,HashMap<String,String>> aaa=new HashMap<String,HashMap<String,String>>();
aaa.put("java班", java);
aaa.put("javahoodp", javahoodp);
//用keySet方法把键值对放在set集合
Set<String> k = aaa.keySet();
Iterator<String> it = k.iterator();
while(it.hasNext()){
String akey = it.next();
System.out.println(akey);
HashMap<String, String> aValue = aaa.get(akey);
System.out.println(aValue); Set<String> skey = aValue.keySet();
System.out.println(skey);
Iterator<String> sit = skey.iterator();
while(sit.hasNext()){
String studentkey = sit.next();
String svalue = aValue.get(studentkey);
System.out.println(studentkey+" "+svalue);
}
} } } //方法二 利用entrySet
public class MapMapDemo3 {
public static void main(String[] args) {
HashMap<String,String> java=new HashMap<String,String>();
java.put("001", "小明");
java.put("002", "小红"); HashMap<String,String> javahoodp=new HashMap<String,String>();
javahoodp.put("001","张三");
javahoodp.put("002", "李四"); HashMap<String,HashMap<String,String>> aaa=new HashMap<String,HashMap<String,String>>();
aaa.put("java班",java);
aaa.put("javahoodp", javahoodp);
entrySet1(aaa); } private static void entrySet1(HashMap<String, HashMap<String, String>> aaa) {
Set<Entry<String, HashMap<String, String>>> entrySet = aaa.entrySet();
Iterator<Entry<String, HashMap<String, String>>> it = entrySet.iterator();
while(it.hasNext()){
Entry<String, HashMap<String, String>> next = it.next();
String akey = next.getKey();
HashMap<String, String> avalue = next.getValue();
System.out.println(akey);
System.out.println(avalue); Set<Entry<String, String>> student = avalue.entrySet();
Iterator<Entry<String, String>> sit = student.iterator();
while(sit.hasNext()){
Entry<String, String> next2 = sit.next();
String skey = next2.getKey();
String svalue = next2.getValue();
System.out.println(skey+" "+svalue);
//System.out.println(svalue);
}
} //方法三 用增强for循环遍历
public class MapMapDemo4 {
public static void main(String[] args) {
HashMap<String,String> java=new HashMap<String,String>();
java.put("001","小明");
java.put("002","小红"); HashMap<String,String> javahoodp=new HashMap<String,String>();
javahoodp.put("001", "张三");
javahoodp.put("002","李四"); HashMap<String,HashMap<String,String>> aaa=new HashMap<String,HashMap<String,String>>();
aaa.put("java", java);
aaa.put("javahoodp",javahoodp); Set<Entry<String, HashMap<String, String>>> entrySet = aaa.entrySet();
for(Entry<String, HashMap<String, String>> i : entrySet){
String akey = i.getKey();
HashMap<String, String> avalue= i.getValue();
//System.out.println(akey);
//System.out.println(avalue);
System.out.println(i);
Set<Entry<String, String>> entrySet2 = avalue.entrySet();
for(Entry<String, String> s : entrySet2){
System.out.println(s);
}
}

Map的嵌套的更多相关文章

  1. Map的嵌套 练习

    Map的嵌套   练习 利用迭代和增强for循环的两种方式实现如下效果 package cn.ccc; import java.util.HashMap;import java.util.Iterat ...

  2. 水果(map的嵌套)

    夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了 ...

  3. Map的嵌套,HDU(1263)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263 新学的map的嵌套 #include <stdio.h> #include < ...

  4. 双列集合Map的嵌套遍历

    双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...

  5. map的嵌套 + 例题(水果)

    水果 http://acm.hdu.edu.cn/showproblem.php?pid=1263 Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~Joe经营着一个 ...

  6. Map接口----Map中嵌套Map

    package cn.good.com; import java.util.HashMap; import java.util.Iterator; import java.util.Map; impo ...

  7. Map的嵌套使用

    Map嵌套Map: 例: AAA: Javas班: 001 熊大 002 熊二 Hdoop班 001 小猪猪 002 小菲菲 ★使用增强for循环遍历Set数组: import java.util.H ...

  8. fastjson排序 Map多层嵌套转换自动排序问题终极解决方案

    阅读更多 最近项目中用到了fastjson(1.2.15)需要将前端多层嵌套json转换为map,由于map的无序性,想了很多办法,最终找到使用 Map m= JSONArray.parseObjec ...

  9. golang map多层嵌套使用及遍历方法汇总

    原文:https://blog.csdn.net/boyhandsome7/article/details/79734847 ------------------------------------- ...

随机推荐

  1. C#,单元测试

    C#,单元测试入门(以下内容可能来自网络) 一.什么叫单元测试(unit testing)? 是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体 ...

  2. 【Python练习题】程序3

    3.题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?x+100 = n*nx+100+168 = m * m 所以(m+n)*(m-n) =168 #题 ...

  3. Hat’s Words HDU - 1247 字典树

    题意:给出数个单词 输出单词 如果该单词 是由字典中的单词组成的 思路:字典树 先把全部建树  然后对于每一个单词进行分割,分别拿两半到字典树里面去找 小心RE! #include<bits/s ...

  4. 使用开源项目xutils3完成下载

    上一次自己写了一个多线程断点续传下载的demo,过于麻烦,bug超多,所以我学习使用xutils来完成此功能. 先将xutils依赖搭建好(上一篇博客已经具体写了方法) 先看看效果图: 下面开始代码的 ...

  5. bzoj2212[Poi2011]Tree Rotations [线段树合并]

    题面 bzoj ans = 两子树ans + min(左子在前逆序对数, 右子在前逆序对数) 线段树合并 #include <cstdio> #include <cstdlib> ...

  6. 分数规划模板(洛谷P4377 [USACO18OPEN]Talent Show)(分数规划,二分答案,背包)

    分数规划是这样一个东西: 给定若干元素,每个元素有两个属性值\(a_i,b_i\),在满足题目要求的某些限制下选择若干元素并求出\(\frac{\sum a}{\sum b}\)的最大值. 如果没有限 ...

  7. spring cloud + mybatis 分布式 微服务 b2b2c 多商户商城 全球部署方案

    用java实施的电子商务平台太少了,使用spring cloud技术构建的b2b2c电子商务平台更少,大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B.B ...

  8. 【CF1097E】Egor and an RPG game(动态规划,贪心)

    [CF1097E]Egor and an RPG game(动态规划,贪心) 题面 洛谷 CodeForces 给定一个长度为\(n\)的排列\(a\),定义\(f(n)\)为将一个任意一个长度为\( ...

  9. Nifi InvokeHttp processor

    Authorization: Bearer <access-token> Content_type: application/json       NIFI 中国社区 QQ群:595034 ...

  10. emwin之WM_DeleteWindow函数使用注意事项

    @2018-12-21 [小记] 在当前窗口P创建一新窗口C后再使用函数 WM_DeleteWindow 删除该C窗口时,删除窗口句柄必须是根句柄,如果使用 WM_GetClientWindow(pM ...