• java中Map的entrySet 和keySet的使用


    存储这样的一个数据关系结构  使用嵌套map存储

    可以通过调用  entrySet方法  或者 keySet方法 进行迭代或者增强for循环 便利输出

    这里演示 迭代器的方式进行遍历

    package demo05;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    public class TwoMapDemo{
        public static void main(String[] args) {
            
            HashMap<String,String> dev=new HashMap<>();
            HashMap<String, String> ops=new HashMap<>();
            
            dev.put("张三", "开发001");
            dev.put("李四", "开发002");
            
            ops.put("王五", "运维001");
            ops.put("赵六", "运维002");
            
            HashMap<String, HashMap<String,String>> albb=new
                    HashMap<String, HashMap<String,String>>();
            albb.put("开发部",dev);
            albb.put("运维部", ops);
            KeySet(albb);
            entrySet(albb);
        }    
            public static void KeySet(HashMap<String, HashMap<String,String>> albb){
                System.out.println("-------------------------使用keySet方法迭代-----------------------");
                Set<String> branchNameSet=albb.keySet();  //返回一个部门名称的set集合
                Iterator<String> branchNameIt=branchNameSet.iterator(); //生成一个部门名称的迭代器
                while(branchNameIt.hasNext()){
                    String branchName=branchNameIt.next();       //获得部门名称
                    HashMap<String, String> branchNameMap=albb.get(branchName); //获得一个 部门成员对象 K是姓名  V是员工编号
                    Set<String> empNameSet=branchNameMap.keySet();              //得到一个 部门成员姓名的 Set集合
                    Iterator<String> empNameIt=empNameSet.iterator();            //生成一个 部门成员姓名的迭代器
                    while(empNameIt.hasNext()){                    
                        String empName=empNameIt.next();                        //得到一个部门的成员姓名        
                        String empId=branchNameMap.get(empName);                //通过姓名获取 员工编号
                        System.out.println(branchName+"...."+empName+"...."+empId);
                    }
                }
                System.out.println("-------------------------使用entrySet方法迭代-----------------------");
            }    
            
            public static void entrySet(HashMap<String, HashMap<String,String>> albb){
                Set<Map.Entry<String, HashMap<String, String>>> set=albb.entrySet(); //得到一个部门对象的Set集合
                Iterator<Map.Entry<String, HashMap<String, String>>> MapIt=set.iterator(); //生成一个部门对象的迭代器
                while(MapIt.hasNext()){
                     Map.Entry<String, HashMap<String, String>> CompanyMap=MapIt.next(); //得到阿里巴巴公司HashMap对象
                     String branchName=CompanyMap.getKey();//获得阿里巴巴的部门名称  K
                     HashMap<String, String> branchMap=CompanyMap.getValue(); // 获得阿里巴巴的部门对象  K员工名称   V员工编号
                     Set<Map.Entry<String, String>> empSet=branchMap.entrySet(); //通过调用entrySet方法 获取 K V对的存储集合
                     Iterator<Map.Entry<String, String>> empIt=empSet.iterator(); //生成一个存储部门员工对象的map  迭代器
                     while(empIt.hasNext()){
                          Map.Entry<String, String> emp=empIt.next();           //得到员工HashMap对象
                          String empName=emp.getKey();                                    
                          String empId=emp.getValue();
                          System.out.println(branchName+"...."+empName+"...."+empId);
                     }
                }
            }
    }

     

  • 相关阅读:
    php ajax请求和返回
    关于 58 996 浪潮 奋进者计划 华为 奋斗者协议—— 小论!
    简单的行为控制管理方法,自动登录,session定时验证码过期
    mysql performance_schema 和information_schema.tables了解
    视频直播点播nginx-rtmp开发手册中文版
    PHPExcel中文开发手册翻译版(2)
    vm安装centos 老是出现 grub.conf 配置问题
    PHPExcel中文开发手册翻译版(1)
    微信支付 扫码支付 模式二 完整版和测试代码+后台对账
    PHP写在线视频直播技术详解
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9124772.html
Copyright © 2020-2023  润新知