java中Map的entrySet 和keySet的使用
存储这样的一个数据关系结构 使用嵌套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的使用的更多相关文章
- Java中Map的entrySet()详解
转发:原博客 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系.Map中采用Entry内部类来表示一个映射项,映射项包含Key和ValueMap.Entry里面包含getKey() ...
- java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...
- Java中Map用法详解
原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...
- java中Map,List与Set的差别
java中Map,List与Set的差别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,而且同一个数组 ...
- 将java中Map对象转为有相同属性的类对象(json作为中间转换)
java中Map对象转为有相同属性的类对象(json作为中间转换) 准备好json转换工具类 public class JsonUtil { private static ObjectMapper o ...
- Java中Map常用方法总结以及遍历方式的汇总
一.整理: 看到array,就要想到角标. 看到link,就要想到first,last. 看到hash,就要想到hashCode,equals. 看到tree,就要想到两个接口.Comparable, ...
- Java中Map的使用
Map以按键/数值对的形式存储数据,和数组很类似,在数组中存在的索引,它们本身也是对象. Map的接口 Map---实现Map Map.Entry--Map的内部类 ...
- Java中Map遍历的四种方案
在Java中如何遍历Map对象 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Integer, Integer> map = new HashM ...
- 探究Java中Map类
Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象. Map的接口 Map---实现Map Map.Entry--Map的内部 ...
随机推荐
- JAVA连接数据库,并写入到txt文件
package Hello; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;impor ...
- 笔记-python-standard library-9.6 random
笔记-python-standard library-9.6 random 1. random source code:Lib/random.py 1.1. functions for ...
- Storm: 遇到问题总结
1.没有ack : kafkaspout id 重复导致每次读最新没有数据. 2.由于storm提供的读取kafka的enternal工具存在bug,导致重复读取数据,致使数据不准确.storm bu ...
- day 17 jQuery
什么是jQuery? 可以把它认为是python中的模块,导入就可以使用模块中的功能. jQuery 的版本: 1.xx 系列 2.xx 系列 3.xx 系列 最常用的为1 系列,1系列最新版为1.1 ...
- JS空数组的判断
前言 最近在做一个mini项目,被大神各种鄙视,基础知识确实是不扎实,加油加油.好了,不多废话,抽空写写遇到的两个知识点,就记录下来,写博客还是能帮忙整理记录的,不然过了就忘记了. input监听值改 ...
- ArrayList以及Map小练
ArrayList常用方法 public static void main(String[] args) { List list = new ArrayList(); List list1 = new ...
- Python+Selenium练习篇之12-获取浏览器的版本号
本文介绍,如何通过webdriver方法获取浏览器的版本号.看起来这个功能很鸡肋,不管怎么说,还是学习下,特别是在发送自动化测试报告的时候,还是可以通过这个方法来告诉别人,执行过的脚本是通过什么浏览器 ...
- w3wp CPU 100%问题解决
问题: web服务器w3wp CPU占用率非常高,导致整个服务器CPU 100%占用,问题无法正常重现 解决方法: --问题尚未解决,此处记录目前的解决状态 1)下载windbg 参考https:// ...
- Zookeeper CreateMode
通过CreateMode 可以设置在zookeeper中创建节点的类型,节点类型共有4种: EPHEMERAL:临时节点 EPHEMERAL_SEQUENTIAL:有序的临时节点 PERSISTENT ...
- ActionContext和ServletActionContext小结
1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息, ...