• HashMap集合嵌套集合方法四种


    Map<String, HashMap<Person, String>> m=new HashMap<String, HashMap<Person, String>>();
            HashMap<Person, String> h1=new HashMap<Person,String>();
            HashMap<Person, String> h2=new HashMap<Person,String>();
            
            h1.put(new Person("小张",16), "java1203");
            h1.put(new Person("小刘",17), "java1203");
            h2.put(new Person("小王",17), "java0999");
            h2.put(new Person("小溪",20), "java0999");
            
            m.put("甲骨文", h1);
            m.put("真古文", h2);
            //分别取出各项数据
            //1.keyset  and   for
            Set<String> s1=m.keySet();
            for(String s:s1)
            {
                //System.out.println(s);
                HashMap<Person, String> s2=m.get(s);
                Set<Person> s3=s2.keySet();
                for(Person p:s3)
                {
                    System.out.println("学校名称为"+s+"班级名称为"+s2.get(p)+"姓名为"+p.getName()+"年龄"+p.getAge());
                }
            }
            //2.keyset and iter
            Set<String> s=m.keySet();
            
            for(Iterator<String> i=s.iterator();i.hasNext();)
            {
                String ss=i.next();
                //System.out.println(ss);
                HashMap<Person, String> schoolname=m.get(ss);
                Set<Person> s2=schoolname.keySet();
                Iterator<Person> i2=s2.iterator();
                while(i2.hasNext())
                {
                    Person p=i2.next();
                    //System.out.println(p);
                    String classname=schoolname.get(p);
                    System.out.println("学校名称为"+ss+"班级名称为"+classname+"姓名为"+p.getName()+"年龄"+p.getAge());
                    
                }
            }
            //3.map.e  and    for
            Set<Map.Entry<String, HashMap<Person, String>>> s=m.entrySet();
            for(Map.Entry<String, HashMap<Person, String>> m2:s)
            {
                String schoolname=m2.getKey();
                HashMap<Person, String> h=m2.getValue();
                Set<Map.Entry<Person, String>> s3=h.entrySet();
                for(Map.Entry<Person, String> m3:s3)
                {
                    Person p=m3.getKey();
                    String classname=m3.getValue();
                    System.out.println("学校名称为"+schoolname+"班级名称为"+classname+"姓名为"+p.getName()+"年龄"+p.getAge());
                }
            }

         

            //4.map.e  and   iter
            Set<Map.Entry<String, HashMap<Person, String>>> s=m.entrySet();
            Iterator<Map.Entry<String, HashMap<Person, String>>> i=s.iterator();
            while(i.hasNext())
            {
                Map.Entry<String, HashMap<Person, String>> a=i.next();
                String schoolname=a.getKey();
                HashMap<Person, String> h=a.getValue();
                Set<Map.Entry<Person, String>> s2=h.entrySet();
                
                for(Iterator<Map.Entry<Person, String>> i2=s2.iterator();i2.hasNext();)
                {
                    Map.Entry<Person, String> mm=i2.next();
                    Person p=mm.getKey();
                    String classname=mm.getValue();
                    System.out.println("学校名称为"+schoolname+"班级名称为"+classname+"姓名为"+p.getName()+"年龄"+p.getAge());
    
                }
                
            }
            
        }


            

            

  • 相关阅读:
    Docker最简教程
    Linux下Docker快速部署LAMP
    NachosLab3同步与互斥机制模块实现
    另类P、V操作问题详细图解
    IE10兼容性问题(frameset的cols属性)
    oracle分页sql(rownum伪列使用)
    fusionchart图表遮挡Ext下拉控件或日期控件解决办法(IE下有问题firefox与chrome正常)
    js比较和逻辑运算符运算符
    JBPM4开发简介
    整合axis2到web项目中
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/10463483.html
Copyright © 2020-2023  润新知