Set、Map底层实现分析


Set、Map是Java中经常用到的两个结构,在了解Set&Map结构的底层实现之前我先来简单的介绍一下Set和Map。

Set:Set是一个接口,在Set集合内无法存储重复的元素,Set常用实现类有HashSet、LinkedHashSet、TreeSet。

Map:Map同样也是一个接口,具有键值对(K--V)的特点,与Set非常相似的常用实现类有HashMap、LinkedHashMap、TreeMap。 

下图为Set&Map类关系图:

Set、Map底层实现分析

从图中不难看出Set&Map类结构图非常相似,可以猜想到,他们必有渊源。


Set&Map知识储备

首先我们要储备一些关于Set&Map的知识,再通过源码来判断Set&Map的关系。

Set:从Set几个常用实现类可以看出,HashSet是哈希表实现的(不稳定),LinkedHashSet是链表实现的(按存储顺序存取),TreeSet是红黑树实现的(按排序顺序存取);通常我们称Set为单列集合

Map:同样从Map常用实现类可以看出,HashMap是哈希表实现的(不稳定),LinkedHashMap是链表实现的(按存储顺序存取),TreeMap是红黑树实现的(按排列顺序存取);通常我们称Map为双列集合;Map中还有一个特别的实现类Hashtable,这是JDK1.0遗留下来的,现已经被HashMap替代,Hashtable较HashMap的区别与Vector较ArrayList的区别相似:                      * Hashtable是线程安全的,效率低;                                                                                                                                        * HashMap是线程不安全的,效率高;


Set&Map底层实现判别

问:在Set&Map底层是用Map结构实现的Set,还是用Set结构实现的Map?

答:Map实现的Set。

理由:上套餐(源码)

Set、Map底层实现分析

画图理解:

Set、Map底层实现分析


                                                        谢谢阅读               ----知飞翀

相关文章:

  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
  • 2021-08-24
  • 2021-06-21
  • 2021-10-02
猜你喜欢
  • 2021-10-04
  • 2022-12-23
  • 2021-12-01
  • 2021-05-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案