hashmap的实现原理和hashset的实现原理是什么?

KLQ 2020-05-19 15:08:48 java常见问答 5926

很多人对于HashMap以及HashSet的实现原理都不大了解,下面就特地的整理了这方面的内容供大家参考,一起详细的来了解一下吧!

一、HashMap的实现原理

首先我们要清楚,HashMap是基于Hash算法来实现的,通过put(key,value)存储数据,通过get(key)来获取数据。

在传入key的时候,HashMap会依据Key.hashCode()计算出Hash值,依据Hash值将value保存在bucket里面。

在计算出相同的Hash值的时候,我们就将它叫做Hash冲突。

HashMap的做法是用链表以及红黑树存储相同Hash值的value,在hash冲突的个数比较的少的时候,使用链表存储,否则的话,就是用红黑树。

以上就是对于HashMap的实现原理的一个简单的介绍了,你都了解了吧?下面要给大家介绍的就是HashSet的实现原理了,一起来了解一下HashSet的实现原理又是怎样的吧!

二、HashSet的实现原理

首先我们要明白的是,和HashMap不同,HashSet是基于HashMap来实现的。

HashSet底层使用HashMap来保存所有的元素。

所以说,HashSet的实现非常的简单,和HashSet相关的操作,通常都是直接调用底层HashMap的相关方法来完成的。

除此之外,HashSet不允许有重复的值,并且元素是无序的。

好啦,以上的内容就是对于HashMap的实现原理以及HashSet的实现原理的简单介绍了,相信大家应该都很清楚了吧!

你还想了解更多的相关问题吗?欢迎继续关注奇Q工具网的常见问题栏目,可以帮助你解决更多的疑惑。

推荐阅读:

hashmap和hashtable区别是什么?有什么区别?

java中HashSet子类依靠什么区分重复元素?