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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王冀仁 中级黑马   /  2015-12-21 21:04  /  518 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.itcast.maptest;
/*
* 传智播客
       基础班
       001 张三
       002  李四
       就业班
       001 王五
      002  赵六
*/
import java.util.*;
public class MapMapTest {
        public static void main(String[] args) {
                //创建2个班级容器,基础班,就业班,存储的是学号,姓名
                HashMap<String,String> javase = new HashMap<String, String>();
                HashMap<String,String> javaee = new HashMap<String, String>();
                //两个班级容器中,存储学生信息
                javase.put("001", "张三");
                javase.put("002", "李四");
               
                javaee.put("001", "王五");
                javaee.put("002", "赵六");
               
                //创建传智播客容器,存储班级集合,键班级名字,值是班级的集合容器
                HashMap<String,HashMap<String,String>> czbk =
                                new HashMap<String, HashMap<String,String>>();
                //将班级集合,存储到传智播客集合中0
                czbk.put("基础班", javase);
                czbk.put("就业班", javaee);
               
        //        keySet(czbk);
                entrySet(czbk);
        }
        /*
         * 定义方法,迭代Map集合,采用entrySet方式
         */
        public static void entrySet(HashMap<String,HashMap<String,String>> czbk){
                 //传智播客,大集合,班级小集合
                //大集合方法entrySet,将大集合的键值对关系对象,存储到Set集合
                Set<Map.Entry<String, HashMap<String,String>>> set = czbk.entrySet();
                //迭代Set集合,获取大集合的键值对关系对象
                Iterator<Map.Entry<String, HashMap<String,String>>> it = set.iterator();
                while(it.hasNext()){
                        //it.next方法,获取是Set元素,Set存储的是大集合的键值对关系对象
                        Map.Entry<String, HashMap<String,String>> entry = it.next();
                        //通过Entry对象方法getKey获取键,getValue获取值
                        String classNameKey = entry.getKey();
                        HashMap<String,String> classMap = entry.getValue();
                        //迭代小集合 classMap
                        //使用小集合方法entrySet,将小集合键值对关系对象,存储Set集合
                        Set<Map.Entry<String, String>> setClass = classMap.entrySet();
                        Iterator<Map.Entry<String, String>> itClass = setClass.iterator();
                        while(itClass.hasNext()){
                                //迭代器的方法next,获取出来的是小集合的键值对关系对象
                                Map.Entry<String, String> classEntry = itClass.next();
                                //classEntry对象,getKey.getValue获取键值对
                                String numberKey = classEntry.getKey();
                                String nameValue = classEntry.getValue();
                                System.out.println(classNameKey+".."+numberKey+".."+nameValue);
                        }
                }
        }
       
        /*
         * 定义方法,迭代Map集合,采用keySet方式
         */
         public static void keySet(HashMap<String,HashMap<String,String>> czbk){
                 //传智播客,大集合,班级小集合
                 //大集合,方法keySet,将大集合中的键,存储到Set集合
                 Set<String> set = czbk.keySet();
                 //迭代set集合
                 Iterator<String> it = set.iterator();
                 while(it.hasNext()){
                         //迭代器方法next获取出现的是大集合中的键
                         //大集合中的键,存储的实际数据班级名字
                         String classNameKey = it.next();
                         //根据键获取值,大集合方法get,值是存储班级的小集合
                         HashMap<String,String> classMap = czbk.get(classNameKey);
                         //班级集合classMap方法keySet,将班级集合中的键,学号存储Set集合
                         Set<String> setClass = classMap.keySet();
                         Iterator<String> itClass = setClass.iterator();
                         while(itClass.hasNext()){
                                 //迭代器itClass方法next获取出来的是小集合的键
                                 //班级集合键,存储的实际数据学号
                                 String numberKey = itClass.next();
                                 //通过小集合方法get,通过键获取值,姓名
                                 String nameValue = classMap.get(numberKey);
                                 System.out.println(classNameKey+".."+numberKey+".."+nameValue);
                         }
                 }
         }
}

0 个回复

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