之前我说过《集合嵌套之ArrayList嵌套ArrayList》,那么HashMap嵌套HashMap该怎么写呢?其实真的不难,就跟双层for循环是一个意思,接下来,我们通过一个案例来演示HashMap嵌套HashMap,看如下代码程序:
package cn.edu.jit.map;import java.util.HashMap;import cn.edu.jit.bean.Student;/** * 集合嵌套之HashMap嵌套HashMap * * 需求: * 双元课堂有很多基础班 * 第88期基础班定义成一个双列集合,键是学生对象,值是学生的归属地(值可以重复的) * 第99期基础班定义成一个双列集合,键是学生对象,值是学生的归属地(值可以重复的) * * 无论88期还是99期都是班级对象,所以为了便于统一管理,把这些班级对象添加到双元课堂集合中。 * @author Rocky * */public class HashMapHMDemo { public static void main(String[] args) { //定义88期基础班 HashMap<Student, String> hm88 = new HashMap<Student, String>(); hm88.put(new Student("张三",23), "北京"); hm88.put(new Student("李四",24), "北京"); hm88.put(new Student("王五",25), "上海"); hm88.put(new Student("赵六",26), "广州"); hm88.put(new Student("钱七",27), "深圳"); //定义99期基础班 HashMap<Student, String> hm99 = new HashMap<Student, String>(); hm99.put(new Student("唐僧",1023), "北京"); hm99.put(new Student("孙悟空",1024), "北京"); hm99.put(new Student("猪八戒",1025), "上海"); hm99.put(new Student("沙和尚",1026), "广州"); //定义双元课堂 HashMap<HashMap<Student, String>, String> hm = new HashMap<HashMap<Student, String>, String>(); hm.put(hm88, "第88期基础班"); hm.put(hm88, "第99期基础班"); //遍历双列集合 for (HashMap<Student, String> h : hm.keySet()) {//hm.keySet()代表的是双列集合中的键的集合 String value = hm.get(h);//get(h)根据键对象获取值对象 //遍历键的双列集合对象 for (Student key : h.keySet()) {//h.keySet()是获取集合中所有的学生键对象 String value2 = h.get(key); System.out.PRintln(key + "=" + value2 + "=" + value); } } }}今天集合嵌套就介绍到这,本文中所有的案例程序都是本人亲测过,如有不对的地方请各位朋友欢迎指正,谢谢了!
新闻热点
疑难解答