#日常练习
问题某单位有多个部门,每个部门有一些员工,使用集合来描述
分析:部门有名称,名称与部门实体构成Map集合,
所以有公司的HashMap<String,HashMap<String,String>>
部门的HashMap<String,String>,所以构成一个嵌套的HashMap集合,
在取出部门员工的信息时,先通过KeySet获得部门的名称,
通过名称获得对应部门的集合,再针对取出的集合使用KeySet来获得对应的Key,
通过Key进而取得完整信息。
package Map;
import java.util.HashMap;
import java.util.Iterator;
/*
* 问题某单位有多个部门,每个部门有一些员工,使用集合来描述
* 分析:部门有名称,名称与部门实体构成Map集合,
* 所以有公司的HashMap<String,HashMap<String,String>>
* 部门的HashMap<String,String>,所以构成一个嵌套的HashMap集合,
* 在取出部门员工的信息时,先通过KeySet获得部门的名称,
* 通过名称获得对应部门的集合,再针对取出的集合使用KeySet来获得对应的Key
* 通过Key进而取得完整信息。
*
* */
public class HashMapTest3 {
public static void main(String[] args) {
//通过集合嵌套的方式存储映射关系
HashMap<String,HashMap<String,String>> company = new
HashMap<String,HashMap<String,String>>();
HashMap<String,String> department1 = new
HashMap<String,String>();
HashMap<String,String> department2 = new
HashMap<String,String>();
company.put("department1", department1);
company.put("department2", department2);
department1.put("zhangsan", "beijing");
department1.put("lisi", "shanghai");
department1.put("wangwu", "beijing");
department2.put("ergouzi", "jiangsu");
department2.put("gousheng", "shanghai");
//获得company的KeySet集合,并取得集合的迭代器
Iterator<String> it = company.keySet().iterator();
//循环逐个取出company的HashMap中的部门名称和对应的员工信息HashMap集合
while(it.hasNext()) {
String departmets = it.next();
System.out.println(departmets+" messages:");
HashMap<String,String> messages = company.get(departmets);
//取得员工信息的集合后拿到迭代器
Iterator<String> iter = messages.keySet().iterator();
//循环逐个取出部门员工的信息
while(iter.hasNext()) {
String name = iter.next();
String address = messages.get(name);
System.out.println(name+"-->"+address);
}
}
}
}