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的内部 ...
随机推荐
- vue购物车的实现
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python的while else
python中有一个其独有的功能,while else. 它的作用是判断是循环是否被终止,如果没有被终止,那么就会执行else,反之则不会执行.还是用一段代码来解释吧 else被执行: count = ...
- Java集合---List、Set、Iterator、Map简介
1.List集合 1.1概念 List继承自Collection接口.List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作. 跟Set集合 ...
- python上数据存储 .h5格式或者h5py
最近在做城市计算的项目,数据文件是以.h5的格式存储的,总结下其用法和特点 来自百度百科的简介: HDF(Hierarchical Data Format),可以存储不同类型的图像和数码数据的文件格式 ...
- HttpRunnerManager 接口自动化测试平台 搭建实践
一.需要准备的知识点 1. linux: 安装 python3.nginx 安装和配置.mysql 安装和配置 2. python: django 配置.uwsgi 配置 二.我搭建的环境 1. Ce ...
- loj2291 「THUSC 2016」补退选
ref pkusc 快到了,做点 thusc 的题涨涨 rp-- #include <iostream> #include <cstring> #include <cst ...
- PageObject模式简介
一.原理 将页面元素定位和对元素的操作行为封装成一个page类,实现对页面对象和测试用例的分离. 一条测试用例可能需要多个步骤操作元素,将每个步骤单独的封装成一个方法,在执行测试用例的时候调用封装好的 ...
- LeetCode118 杨辉三角 Python
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 示例:输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] cl ...
- 项目中遇到的ts问题汇总
报错关键词句 报错截图 解决 Declaration of public static field not allowed after declaration of public instance m ...
- Spread.js 上下级关系