存储这样的一个数据关系结构  使用嵌套map存储

可以通过调用  entrySet方法  或者 keySet方法 进行迭代或者增强for循环 便利输出

这里演示 迭代器的方式进行遍历

package demo05;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set; public class TwoMapDemo{
public static void main(String[] args) { HashMap<String,String> dev=new HashMap<>();
HashMap<String, String> ops=new HashMap<>(); dev.put("张三", "开发001");
dev.put("李四", "开发002"); ops.put("王五", "运维001");
ops.put("赵六", "运维002"); HashMap<String, HashMap<String,String>> albb=new
HashMap<String, HashMap<String,String>>();
albb.put("开发部",dev);
albb.put("运维部", ops);
KeySet(albb);
entrySet(albb);
}
public static void KeySet(HashMap<String, HashMap<String,String>> albb){
System.out.println("-------------------------使用keySet方法迭代-----------------------");
Set<String> branchNameSet=albb.keySet(); //返回一个部门名称的set集合
Iterator<String> branchNameIt=branchNameSet.iterator(); //生成一个部门名称的迭代器
while(branchNameIt.hasNext()){
String branchName=branchNameIt.next(); //获得部门名称
HashMap<String, String> branchNameMap=albb.get(branchName); //获得一个 部门成员对象 K是姓名 V是员工编号
Set<String> empNameSet=branchNameMap.keySet(); //得到一个 部门成员姓名的 Set集合
Iterator<String> empNameIt=empNameSet.iterator(); //生成一个 部门成员姓名的迭代器
while(empNameIt.hasNext()){
String empName=empNameIt.next(); //得到一个部门的成员姓名
String empId=branchNameMap.get(empName); //通过姓名获取 员工编号
System.out.println(branchName+"...."+empName+"...."+empId);
}
}
System.out.println("-------------------------使用entrySet方法迭代-----------------------");
} public static void entrySet(HashMap<String, HashMap<String,String>> albb){
Set<Map.Entry<String, HashMap<String, String>>> set=albb.entrySet(); //得到一个部门对象的Set集合
Iterator<Map.Entry<String, HashMap<String, String>>> MapIt=set.iterator(); //生成一个部门对象的迭代器
while(MapIt.hasNext()){
Map.Entry<String, HashMap<String, String>> CompanyMap=MapIt.next(); //得到阿里巴巴公司HashMap对象
String branchName=CompanyMap.getKey();//获得阿里巴巴的部门名称 K
HashMap<String, String> branchMap=CompanyMap.getValue(); // 获得阿里巴巴的部门对象 K员工名称 V员工编号
Set<Map.Entry<String, String>> empSet=branchMap.entrySet(); //通过调用entrySet方法 获取 K V对的存储集合
Iterator<Map.Entry<String, String>> empIt=empSet.iterator(); //生成一个存储部门员工对象的map 迭代器
while(empIt.hasNext()){
Map.Entry<String, String> emp=empIt.next(); //得到员工HashMap对象
String empName=emp.getKey();
String empId=emp.getValue();
System.out.println(branchName+"...."+empName+"...."+empId);
}
}
}
}

java中Map的entrySet 和keySet的使用的更多相关文章

  1. Java中Map的entrySet()详解

    转发:原博客 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系.Map中采用Entry内部类来表示一个映射项,映射项包含Key和ValueMap.Entry里面包含getKey() ...

  2. java中map接口hashMap以及Enty之间的用法和关系

    java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...

  3. Java中Map用法详解

    原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...

  4. java中Map,List与Set的差别

    java中Map,List与Set的差别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,而且同一个数组 ...

  5. 将java中Map对象转为有相同属性的类对象(json作为中间转换)

    java中Map对象转为有相同属性的类对象(json作为中间转换) 准备好json转换工具类 public class JsonUtil { private static ObjectMapper o ...

  6. Java中Map常用方法总结以及遍历方式的汇总

    一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...

  7. Java中Map的使用

    Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象.       Map的接口       Map---实现Map       Map.Entry--Map的内部类 ...

  8. Java中Map遍历的四种方案

    在Java中如何遍历Map对象 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer, Integer> map = new HashM ...

  9. 探究Java中Map类

    Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.       Map的接口       Map---实现Map       Map.Entry--Map的内部 ...

随机推荐

  1. Spark架构与作业执行流程简介(scala版)

    在讲spark之前,不得不详细介绍一下RDD(Resilient Distributed Dataset),打开RDD的源码,一开始的介绍如此: 字面意思就是弹性分布式数据集,是spark中最基本的数 ...

  2. 如何在C#中调试LINQ查询

    原文:How to Debug LINQ queries in C# 作者:Michael Shpilt 译文:如何在C#中调试LINQ查询 译者:Lamond Lu 在C#中我最喜欢的特性就是LIN ...

  3. WPF异步回调时回调函数如何获取异步函数产生的变量

    有这么一个问题,WPF在使用异步回调的时候,回调函数需要用到异步函数里产生的一个变量,例如异步函数里查询数据库得到了一个DataTable,如何传递给回调函数呢? [方案一]使用全局变量 很容易想到的 ...

  4. MySQL基础9-主键约束、外键约束、等值连接查询、一对一和多对多关系

    1.主键约束和外键约束 外键约束 * 外键必须是另一表的主键的值(外键要引用主键!) * 外键可以重复 * 外键可以为空 * 一张表中可以有多个外键! 概念模型在数据库中成为表 数据库表中的多对一关系 ...

  5. MySQL基础6-分组查询

    1.分组函数 需求20:查询所有商品平均零售价SELECT AVG(salePrice) FROM product 需求21:查询商品总记录数SELECT COUNT(id) count FROM p ...

  6. loj2173 「FJOI2016」建筑师

    ref 真是道组合数学神题啊--第一次见第一类斯特林数-- #include <iostream> #include <cstdio> using namespace std; ...

  7. loj2059 「TJOI / HEOI2016」字符串

    字符串好难啊不会啊 #include <iostream> #include <cstdio> using namespace std; int n, m, rnk[10000 ...

  8. 【Reverse Linked List II】cpp

    题目: Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1- ...

  9. csu-2018年11月月赛Round2-div2题解

    csu-2018年11月月赛Round2-div2题解 A(2193):昆虫繁殖 Description 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强.每对成虫过x个月产y对卵,每对 ...

  10. CentOS7 haproxy+keepalived实现高可用集群搭建

    一.搭建环境 CentOS7 64位 Keepalived 1.3.5 Haproxy 1.5.18 后端负载主机:192.168.166.21 192.168.166.22 两台节点上安装rabbi ...