Java中的Map集合学习笔记

Map概述

    Map接口是一个双列集合,它的每一个元素都包含一个键对象key和一个值对象value,键和值是一一对应关系。在map中访问元素时,只要找到指定的key就能找到对应的value。
在这里插入图片描述

HashMap集合

    HashMap集合是Map接口的一个实现类,它是线程不安全的,用于存储键值映射关系,但保证不能出现相同的键。如果有相同的键,总结一句话:键相同,值覆盖
实例:

public class Exception05 {
    public static void main(String[] args) {
        //创建一个map
        Map hashMap = new HashMap();
        //通过put(key, value)方法存储
        hashMap.put("name1", "张一");
        hashMap.put("name1", "李四");
        hashMap.put("name2", "张二");
        hashMap.put("name3", "张三");
        hashMap.put("name4", "张四");
        //通过get(key)方法取值输出
        System.out.println("取出key为name1的value为:" + hashMap.get("name1"));
        //map集合的遍历
        for (Object entry : hashMap.entrySet()){
            System.out.println(entry);
        }
    }
}

运行结果:
在这里插入图片描述
    我们通过put()方法存入五个key和对应的value,有一个key是相同的,从结果可以看出来value等于张一的并没有输出打印。这就是键相同,值覆盖。

LinkedHashMap集合

    从上面实例的运行结果可以看出,通过遍历map集合输出的结果并不是我们存入的顺序,如果想让遍历的结果输出和存储时的结果一致的话就要使用LinkedHashMap类它是HashMap的子类。它的内部也是使用了一个双向链表维护内部元素的关系。
实例:

public class Exception06 {
    public static void main(String[] args) {
        //创建LinkedHashMap集合
        Map linkedHashMap = new LinkedHashMap();
        //存储值
        linkedHashMap.put("1","jack1");
        linkedHashMap.put("2","jack2");
        linkedHashMap.put("3","jack3");
        //循环遍历输出
        for (Object entry: linkedHashMap.entrySet()){
            System.out.println(entry);
        }
    }
}

运行结果:
在这里插入图片描述
    从运行结果可以看出元素迭代出来的顺序和存入的顺序是一致的。

TreeMap集合

    TreeMap也是Map接口的一个实现类,该集合用来存储键值映射关系的,它是不允许出现重复的键,TreeMap集合是通过二叉树的原理来保证键的唯一性。
实例:

public class Exception07 {
    public static void main(String[] args) {
        Map treeMap = new TreeMap();//创建TreeMap集合
        treeMap.put("1","张三");//存入三个值
        treeMap.put("2","李四");
        treeMap.put("3","王二");
        Set keySet = treeMap.keySet();//获得键的集合
        Iterator iterator = keySet.iterator();//获得iterator对象
        while (iterator.hasNext()){//判断是否存在下一个对象
            Object key = iterator.next();//取出元素
            Object value = treeMap.get(key);//根据获得的键找对应的key
            System.out.println(key + "=" + value);
        }
    }
}

运行结果:
在这里插入图片描述

Properties集合

    Properties类是Hashtable的一个实现类,而Hashtable是实现了Map接口。Hashtable和Hashmap十分相似,区别在于Hashtable是线程安全的,它在存取元素是速度很慢,现在基本不使用。但Hashtable有一个子类就是Properties,然而Properties在实际中应用非常重要,在实际开发中,经常使用Properties集合来存取应用的配置项。
加油吧!!!
下一次学习List和Map集合的遍历方式。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值