A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Dana-乌拉拉 中级黑马   /  2014-11-24 18:32  /  1046 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

六、Map扩展知识

        在很多项目中,应用比较多的是一对多的映射关系,这就可以通过嵌套的形式将多个映射定义到一个大的集合中,并将大的集合分级处理,形成一个体系。

如:

[java] view plaincopy


  • /*
  • map扩展知识。
  • map集合被使用是因为具备映射关系。
  • 以下是班级对应学生,而学生中学号对应着姓名的映射关系:
  • "yureban"   Student("01" "zhangsan");
  • "yureban" Student("02" "lisi");
  • "jiuyeban" "01" "wangwu";
  • "jiuyeban" "02" "zhaoliu";
  • 就如同一个学校有多个教室。每一个教室都有名称。
  • */  
  • import java.util.*;  
  •   
  • class  MapExpandKnow  
  • {  
  •     public static void main(String[] args)   
  •     {  
  •         //预热班集合  
  •         HashMap<String,String> yureban=new HashMap<String,String>();  
  •         //就业班集合  
  •         HashMap<String,String> jiuyeban=new HashMap<String,String>();  
  •         //学校集合  
  • HashMap<String,HashMap<String,String>> czbk=new HashMap<String,HashMap<String,String>>();  
  •          
  •         //学校中班级集合和名称的映射  
  •         czbk.put("yureban",yureban);  
  •         czbk.put("jiuyueban",jiuyeban);  
  •          
  • //预热班级中学号与姓名的映射  
  •         yureban.put("01","zhangsan");  
  •         yureban.put("02","lisi");  
  •          
  •         //就业班级中学号与姓名的映射  
  •         jiuyeban.put("01","wangwu");  
  •         jiuyeban.put("02","zhouqi");  
  •               
  •             //直接显示全部学生信息  
  •         getAllStudentInfo(czbk);  
  •   
  •     }  
  •     //定义一个方法获取全部学生信息,包括在哪个班级,叫什么名字,学号多少  
  •     public static void getAllStudentInfo(HashMap<String ,HashMap<String,String>> hm)  
  •     {  
  •         for (Iterator<String> it=hm.keySet().iterator();it.hasNext() ; )//用keySet取出方式  
  •         {  
  •             String s= it.next();//班级名称  
  •             System.out.println(s+":");  
  •             HashMap<String,String> stu=hm.get(s);//班级集合  
  •   
  •             getStudentInfo(stu);  
  •         }  
  •     }  
  •       
  •     //获取班级中学生的信息,包括姓名和学号  
  •     public static void getStudentInfo(HashMap<String,String> hm)  
  •     {  
  •         for (Iterator<String> it=hm.keySet().iterator();it.hasNext() ; )  
  •         {  
  •             String key=it.next();//学号  
  •             String value=hm.get(key);//姓名  
  •             System.out.println(key+"..."+value);  
  •         }  
  •     }  
  • }  


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马