J2EE MAP

本文详细介绍了Map的特点,包括无序、键值对存储以及遍历方式。对比了HashMap与HashTable的区别,强调了线程安全与同步特性。此外,展示了Collections工具类的常用方法,如数组操作与排序。最后,通过实例演示了Map集合的三层嵌套使用,构建了一个包含初中、高中和大学部学生的复杂数据结构。
摘要由CSDN通过智能技术生成

1. Map
  1.1 特点:无序、以键值对的形式添加元素,键不能重复,值可以重复
           它没有继承Collection接口

结果图:


  1.2 遍历
    1.2.1 先取出保存所有键的Set,再遍历Set即可(2种)
    1.2.2 先取出保存所有Entry的Set,再遍历此Set即可 (重要点)

 

结果图:

 

 

 

2.HashMap与HashTable之间的区别
  同步既排队  线程安全的     hashtable  键不可以为null,值也不能为null
  异步        非安全的   hashmap  键可以为null,值也可以为null
  
3. 其它
   3.1 Collections:工具类,提供一组静态方法操作Collection集合
   3.2 Arrays:工具类,提供了一组静态方法操作数组
 

找出Collections中常用的五个方法的作用

1.常用方法
public static boolean equals(int[] a, int[] a2)   判断两个数组是否相等
public static String toString(int[] a)        输出数组信息
public static void fill(int[] a, int val)     将指定值填充到数组之中
public static void sort(int[] a)        将数组进行排序
public static int binarySearch(int[] a, int key)    对排序后的数组进行二分法检索指定的值
 

Map集合3层嵌套使用(2Map+1List)
List<Student>
Map<String,List>
Map<String,Map>

  //初中部
        List<Stu> ls=new ArrayList<>();
        ls.add(new Stu("张晓东",90));
        ls.add(new Stu("张晓西",75));
        List<Stu> ls2=new ArrayList<>();
        ls2.add(new Stu("张晓北",80));
        ls2.add(new Stu("张晓南",82));
        //高中部
        List<Stu> ls3=new ArrayList<>();
        ls3.add(new Stu("张三",90));
        ls3.add(new Stu("李四",100));
        List<Stu> ls4=new ArrayList<>();
        ls4.add(new Stu("小王",70));
        ls4.add(new Stu("老六",100));
        List<Stu> ls5=new ArrayList<>();
        ls5.add(new Stu("老八",70));
        ls5.add(new Stu("小九",100));
        //大学部
        List<Stu> ls6=new ArrayList<>();
        ls6.add(new Stu("可乐",60));
        ls6.add(new Stu("雪碧",50));
        List<Stu> ls7=new ArrayList<>();
        ls7.add(new Stu("娃哈哈",90));
        ls7.add(new Stu("老干妈",80));
        Map<String, List<Stu>> map=new HashMap<String, List<Stu>>();
        map.put("T110", ls);
        map.put("T111", ls2);
        Map<String, List<Stu>> map2=new HashMap<String, List<Stu>>();
        map2.put("T206", ls3);
        map2.put("T222", ls4);
        map2.put("T208", ls5);
        Map<String, List<Stu>> map3=new HashMap<String, List<Stu>>();
        map3.put("T230", ls6);
        map3.put("T231", ls7);
        
        Map<String, Map<String, List<Stu>>> x=new HashMap<String, Map<String, List<Stu>>>();
        x.put("卓京初中部", map);
        x.put("卓京高中部", map2);
        x.put("卓京大学部", map3);
        Set<String> keySet = x.keySet();
        for (String m : keySet) {
            Map<String, List<Stu>> map4 = x.get(m);
            System.out.println(m);
            Set<String> keySet2 = map4.keySet();
            for (String m2 : keySet2) {
                List<Stu> ls8 = map4.get(m2);
                System.out.println("    "+m2);
                for (Stu l : ls8) {
                    System.out.println("    "+l);
                }
                

            }

        }

结果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值