美文网首页我爱编程
Java中Map集合概述

Java中Map集合概述

作者: Briarbear | 来源:发表于2018-05-26 21:37 被阅读0次

    本文主要为Java中Map集合的概述,至于具体类的实现,未作详细讲解,具体实现原理可参看相关链接以及JDK源码

    [TOC]

    1. Map集合

    • java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMapHashtableLinkedHashMapTreeMap

    • Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复

    • Map架构

      image

    2. HashMap

    • 最常用的Map
    • 根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的
    • HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null
    • HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 CollectionssynchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap
    • HashMap的底层实现基于数组(动态可扩展)+链表(处理冲突)

    3. Hashtable

    • 它继承自Dictionary
    • 它不允许记录的键或者值为空
    • 它支持线程的同步,Hashtable在写入时会比较慢

    4. LinkedHashMap

    • 继承HashMap,使用双向链表来维护key-value的次序,迭代顺序与插入的顺序保持一致
    • 迭代访问性能更好

    5. TreeMap

    • 实现SortMap接口
    • 红黑树数据结构,每个key-value对即作为一个红黑树节点,根据key排序,默认是按键值的升序排序

    6. 其他

    • 再次强调,SetMap的关系十分密切,Java源码就是先实现了HashMapTreeMap等集合,然后通过包装一个所有value都为nullMap集合实现Set集合类

    相关链接

    相关文章

      网友评论

        本文标题:Java中Map集合概述

        本文链接:https://www.haomeiwen.com/subject/tjlvjftx.html