## HashMap 的实现原理:
**HashMap是基于Hash算法实现的,**
我们通过put(key,value)存储数据,通过get(key)来获取数据
当传入key时,HashMap会根据Key.hashCode()计算出Hash值,根据Hash值将value保存在bucket里 ,。
**当计算出相同的Hash值时,我们称之为Hash冲突**,HashMap 的做法是用链表和红黑树存储相同Hash值的value,
当hash冲突的个数比较少时,使用链表存储,
否则使用红黑树。
## HashSet 的实现原理:
HashSet是基于HashMap实现的,HashSet 底层使用HashMap来保存所有元素,
因此HashSet 的实现比较简单,相关HashSet 的操作,基本上都是直接调用底层HashMap的相关方法来完成,HashSet不允许有重复的值,并且元素是无序的。

面试题:说一下HashMap和HashSet的实现原理?.md