集合(7)----集合的嵌套

版权声明:未经同意,严禁转载 https://blog.csdn.net/pengchengliu/article/details/82667928

                                                                                                                                                                 点击此处返回总目录

集合是存储对象的,但是集合本身也是个对象,所以集合也可以存集合。这就是集合的嵌套。

例1:将下面的关系进行存储。

四室:

      网络组:

               001 liupc 

               002 lijing

扫描二维码关注公众号,回复: 3392465 查看本文章

      电磁组:

               001 liubo

               002 guoshaoying

分析:网络组是一个Map集合,存储学号和姓名。电磁组也是一个Map,存储学号和姓名。而四室也是一个Map,存储组名和对应的Map。

package cn.itcast.demo17;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class Test {
    public static void main(String[] args) {
        //定义网络组集合
        Map<String,String> wangluozu = new HashMap<String,String>();
        wangluozu.put("001", "liupc");
        wangluozu.put("002", "lijing");

        //定义电磁组集合
        Map<String,String> diancizu = new HashMap<String,String>();
        diancizu.put("001", "liubo");
        diancizu.put("002", "guoshaoying");
        
        //定义四室集合
        Map<String,Map<String,String>> sishi = new HashMap<String,Map<String,String>>();
        sishi.put("网络组", wangluozu);
        sishi.put("电磁组", diancizu);
        
        
        //查看四室网络组001号学生
        String str = sishi.get("网络组").get("001");
        System.out.println(str);
        System.out.println("--------------");
        
        //遍历四室电磁组的学生:keySet()方式
        for(String no : sishi.get("电磁组").keySet()){
            System.out.println(no + "..." + sishi.get("电磁组").get(no));
        }
        System.out.println("--------------");
        
        //遍历四室电磁组的学生:entry方式
        Set<Entry<String,String>> set = sishi.get("电磁组").entrySet();
        for(Entry<String,String> entry:set){
            System.out.println(entry.getKey()+"..."+entry.getValue());
        }
        System.out.println("--------------");
        
        //遍历四室的学生:keySet()方式
        Set<String> set_sishi = sishi.keySet();
        for(String zuName :set_sishi){
            Map<String,String> map = sishi.get(zuName);
            Set<String> set_zu = map.keySet();
            for(String no:set_zu){
                String name = map.get(no);
                System.out.println(zuName + "..." + no + "..." + name);
            }
        }
        System.out.println("--------------");


        //遍历四室的学生:Entry方式
        Set<Map.Entry<String,Map<String,String>>>  entrySet1 = sishi.entrySet();
        for(Map.Entry<String,Map<String,String>> entry2:entrySet1){
            String zuName1 = entry2.getKey();
            Map<String,String> map2 = entry2.getValue();
            Set<Map.Entry<String,String>> entrySet2 = map2.entrySet();
            for(Map.Entry<String,String> entry3:entrySet2){
                String no1 = entry3.getKey();
                String name1 = entry3.getValue();
                System.out.println(zuName1 + "..." + no1 + "..." + name1);
            }
            
        }
        
    }
}

运行结果:

liupc
--------------
001...liubo
002...guoshaoying
--------------
001...liubo
002...guoshaoying
--------------
网络组...001...liupc
网络组...002...lijing
电磁组...001...liubo
电磁组...002...guoshaoying
--------------
网络组...001...liupc
网络组...002...lijing
电磁组...001...liubo
电磁组...002...guoshaoying

猜你喜欢

转载自blog.csdn.net/pengchengliu/article/details/82667928