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的内部 ...
随机推荐
- JZOJ 1267. 路障
1267. 路障(block.pas/c/cpp) (File IO): input:block.in output:block.out Time Limits: 1000 ms Memory Li ...
- Android四大基本组件介绍及生命周期
Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一.了解四大基本组件 Activity ...
- wusir 面试题答案在老男孩的视频里
注意:你问答案在哪里?答案在视频里了,就是不给你写. 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C+ ...
- 使用HTTP协议访问网络
在Android上发送http请求有2种方式,分别由两个类完成,HttpURLConnection和HttpClient. 一.使用HttpURLConnection方式 1.1 建立连接的基本步骤 ...
- 笔记-python tutorial-9.classes
笔记-python tutorial-9.classes 1. Classes 1.1. scopes and namespaces namespace: A namespace is ...
- SQL中的函数用法
一.coalesce COALESCE (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值.如果所有的表 ...
- Android开发——HandlerThread以及IntentService详解
.HandlerThread Android API提供了HandlerThread来创建线程.官网的解释是: //Handy class for starting a new thread that ...
- bash shell命令与监测的那点事(二)
bash shell命令与监测的那点事之top 上次我们说到了ps命令,ps命令虽然在收集运行在系统上的进程信息很有用,但是也有不足之处,ps命令只能显示某个特定时间点的信息,如果你想观察频繁换进换出 ...
- 【Remove Elements】cpp
题目: Given an array and a value, remove all instances of that value in place and return the new lengt ...
- Windows网络编程笔记5 -- 其他套接字
包括红外线套接字(IrSock).IPX/SPX 套接字.NetBIOS 套接字.AppleTalk 套接字.ATM 套接字等.对这些套接字进行简单介绍. 第一.红外线套接字(I r S o c k) ...