黑马程序员-Map的嵌套应用

本文通过Java培训中集合的嵌套形式示例,展示了如何利用HashMap存储不同班级的学生信息,并提供了两种迭代方法:entrySet和keySet,用于遍历嵌套的集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

/*
 * 集合的嵌套的形式
 * 黑马集合,存储的班级的小集合
 * 班级集合,存储学号姓名*/
import java.util.*;
public class Bh {
    public static void main(String[] args) {
        //定义黑马的集合
        HashMap<String,HashMap<String,String>> hm = new HashMap<String, HashMap<String,String>>();
        //定义基础集合
        HashMap<String,String> javase = new HashMap<String, String>();
        //就业班集合
        HashMap<String,String> javaee = new HashMap<String, String>();
        //存储基础和就业的学生
        javase.put("001", "lisi");
        javase.put("002", "zhangsan");    
        javaee.put("005","wangwu");
        javaee.put("006","zhaoliu");
        //班级集合,存储到黑马集合
        hm.put("基础班", javase);
        hm.put("就业班", javaee);
//        System.out.println(hm);
        entrySet(hm);
    }
    //定义方法实现嵌套集合的迭代entrySet
    private static void entrySet(HashMap<String,HashMap<String,String>> map){
        //获取黑马集合的键值对关系对象Map.Entry ,关系对象存储到Set集合, 黑马集合方法entrySet、
        Set<Map.Entry<String, HashMap<String,String>>>  set = map.entrySet();
        //迭代Set集合
        Iterator<Map.Entry<String, HashMap<String,String>>> it = set.iterator();
        while(it.hasNext()){
            //it.next()获取到的是黑马集合的键值对关系对象Entry
            Map.Entry<String, HashMap<String,String>> me = it.next();
            //通过键值对关系对象,获取键,获取值
            String className = me.getKey();
            //值是Map集合,定义Map集合来接收
            HashMap<String,String> classValue = me.getValue();
            //classValue迭代集合,存储的是学号和姓名,entrySet方法,获取键值对关系对象,存储Set集合
            Set<Map.Entry<String, String>> classSet = classValue.entrySet();
            //迭代classSet集合
            Iterator<Map.Entry<String, String>> classIt = classSet.iterator();
            while(classIt.hasNext()){
                //it.next()获取的是班级集合的键值对关系对象
                Map.Entry<String, String> meClass = classIt.next();
                //班级集合的键值对对象,获取键值对
                String num = meClass.getKey();
                String name = meClass.getValue();
                System.out.println(className+"..."+num+"..."+name);
            }
        }
        
    }
    
    //*****************************************************************************************
    //定义方法实现嵌套集合的迭代 keySet
    private static void keySet(HashMap<String,HashMap<String,String>> map){
        //将黑马集合的键,存储到Set集合
        Set<String> set = map.keySet();
        //迭代Set集合
        Iterator<String> it = set.iterator();
        while(it.hasNext()){
            //it.next()获取的是String类型,班级的名字,黑马集合的键
            String classKey = it.next();
            //使用黑马集合的get方法获取值,值是一个Map集合,定义Map接收
            HashMap<String,String> classValue = map.get(classKey);
            //迭代班级集合classValue,keySet方法,将班级集合的键存储到Set集合
            Set<String> classSet = classValue.keySet();
            //迭代班级集合
            Iterator<String> classIt = classSet.iterator();
            while(classIt.hasNext()){
                //classIt.next()获取的班级集合的键,学号
                String num = classIt.next();
                String name = classValue.get(num);
                System.out.println(classKey+"..."+num+"..."+name);
            }
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值