您的位置:首页 > 其它

集合嵌套练习(模拟公司员工信息存储)

2018-01-19 12:21 246 查看

#日常练习
4000

  问题某单位有多个部门,每个部门有一些员工,使用集合来描述
  分析:部门有名称,名称与部门实体构成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);
}
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐