存储这样的一个数据关系结构  使用嵌套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. JAVA连接数据库,并写入到txt文件

    package Hello; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;impor ...

  2. 笔记-python-standard library-9.6 random

    笔记-python-standard library-9.6 random 1.      random source code:Lib/random.py 1.1.    functions for ...

  3. Storm: 遇到问题总结

    1.没有ack : kafkaspout id 重复导致每次读最新没有数据. 2.由于storm提供的读取kafka的enternal工具存在bug,导致重复读取数据,致使数据不准确.storm bu ...

  4. day 17 jQuery

    什么是jQuery? 可以把它认为是python中的模块,导入就可以使用模块中的功能. jQuery 的版本: 1.xx 系列 2.xx 系列 3.xx 系列 最常用的为1 系列,1系列最新版为1.1 ...

  5. JS空数组的判断

    前言 最近在做一个mini项目,被大神各种鄙视,基础知识确实是不扎实,加油加油.好了,不多废话,抽空写写遇到的两个知识点,就记录下来,写博客还是能帮忙整理记录的,不然过了就忘记了. input监听值改 ...

  6. ArrayList以及Map小练

    ArrayList常用方法 public static void main(String[] args) { List list = new ArrayList(); List list1 = new ...

  7. Python+Selenium练习篇之12-获取浏览器的版本号

    本文介绍,如何通过webdriver方法获取浏览器的版本号.看起来这个功能很鸡肋,不管怎么说,还是学习下,特别是在发送自动化测试报告的时候,还是可以通过这个方法来告诉别人,执行过的脚本是通过什么浏览器 ...

  8. w3wp CPU 100%问题解决

    问题: web服务器w3wp CPU占用率非常高,导致整个服务器CPU 100%占用,问题无法正常重现 解决方法: --问题尚未解决,此处记录目前的解决状态 1)下载windbg 参考https:// ...

  9. Zookeeper CreateMode

    通过CreateMode 可以设置在zookeeper中创建节点的类型,节点类型共有4种: EPHEMERAL:临时节点 EPHEMERAL_SEQUENTIAL:有序的临时节点 PERSISTENT ...

  10. ActionContext和ServletActionContext小结

    1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息, ...