Java集合之Map接口(下)

一、承接上篇Java集合之Map接口(上),继续对Map接口进行讲解

二、Map接口下的实现类:

  2.1、HashMap集合:

    2.1.1、K-V键值对,K和V都允许为null,不同步,线程不安全,无序集合,实现同步需要:Collections.synchronizedMap(new HashMap<>())

    2.1.2、HashMap特点:

        1、不支持同步,线程不安全

        2、速度快

        3、数据量大

  2.2、LinkedHashMap集合:

    2.2.1、LinkedHashMap是以双向链表维持插入排序的HashMap集合,K-V键值对,K和V都允许为null,不同步,线程不安全,有序(按照存放数据顺序)的集合,实现同步需要:Collections.synchronizedMap(new LinkedHashMap<>())

    2.2.2、LinkedHashMap特点:

        1、不支持同步,线程不安全

        2、速度快

        3、数据量大

        4、数据排序按照存入顺序

  2.3、Hashtable集合:

    2.3.1、K-V键值对,K和V都不允许为null,同步,线程安全,无序集合,适合小数据量

    2.3.2、HashTable特有方法,判断HashTable集合是否包含指定V值:contains(V),与containsValue(V)作用相同

  2.4、TreeMap集合:

    2.4.1、TreeMap是以红黑树实现的集合,K-V键值对,K和V都允许为null,不同步,线程不安全,TreeMap集合会对存入的数据根据K集合进行排序,参考TreeSet集合;

        实现同步需要:Collections.synchronizedMap(new TreeMap<>())

  2.5、Properties集合:

    2.5.1、继承于HashTable,可以将K-V保存在文件中,适用于数据量小的配置文件

    2.5.2、Properties特有方法:

        1、从文件中加载属性键值对:load()

        2、属性键值对写入到文件中:store()

三、HashMap与HashTable异同:

  3.1、底层都使用了哈希算法

  3.2、都是双列集合

  3.3、HashMap是线程不安全的,HashTable是线程安全的

  3.4、HashMap可以存null值,HashTable不能存null值

posted @ 2022-07-14 20:35  忘chuan  阅读(63)  评论(0)    收藏  举报