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

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

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不允许有重复的值,并且元素是无序的。

目录
相关文章
|
1月前
|
XML 前端开发 Java
java面试题之个人对SpringMvc的原理实现理解
java面试题之个人对SpringMvc的原理实现理解
|
11天前
|
安全 网络协议 算法
Android网络基础面试题之HTTPS的工作流程和原理
HTTPS简述 HTTPS基于TCP 443端口,通过CA证书确保服务器身份,使用DH算法协商对称密钥进行加密通信。流程包括TCP握手、证书验证(公钥解密,哈希对比)和数据加密传输(随机数加密,预主密钥,对称加密)。特点是安全但慢,易受特定攻击,且依赖可信的CA。每次请求可能复用Session ID以减少握手。
18 2
|
17天前
|
存储 算法 Java
闲鱼面试:说说JWT工作原理?
闲鱼面试:说说JWT工作原理?
16 0
闲鱼面试:说说JWT工作原理?
|
18天前
|
负载均衡 Dubbo Java
哈啰面试:说说Dubbo运行原理?
哈啰面试:说说Dubbo运行原理?
20 0
哈啰面试:说说Dubbo运行原理?
|
21天前
|
设计模式 网络安全 开发工具
|
26天前
|
安全 Java 程序员
Java基础18-一文搞懂Java多线程使用方式、实现原理以及常见面试题(二)
Java基础18-一文搞懂Java多线程使用方式、实现原理以及常见面试题(二)
35 4
|
26天前
|
Java 程序员 调度
Java基础18-一文搞懂Java多线程使用方式、实现原理以及常见面试题(一)
Java基础18-一文搞懂Java多线程使用方式、实现原理以及常见面试题(一)
40 0
Java基础18-一文搞懂Java多线程使用方式、实现原理以及常见面试题(一)
|
1月前
|
消息中间件 存储 缓存
面试题--HashMap和TreeMap的区别和应用场景有啥区别?
然后底层调用key的hashCode()方法得出hash值; 过哈希表哈希算法,将hash值转换成数组的下标(注1),下标位置上如果没有任何元素,就把Node添加到这个位置上。如果说下标对应的位置上有值。此时,就会拿着key和链表上每个节点的key进行equal。如果所有的equals方法返回都是false,那么这个新的节点将被添加到链表的末尾。如其中有一个equals返回了true,那么这个节点的value将会被覆盖,如果最终长度大于8就会转成红黑树,红黑树插入;
22 3
|
1月前
|
存储 算法 Java
HashMap 的实现原理
HashMap 的实现原理
|
11天前
|
存储 安全 Java
《ArrayList & HashMap 源码类基础面试题》面试官们最喜欢问的ArrayList & HashMap源码类初级问,你都会了?
《ArrayList & HashMap 源码类基础面试题》面试官们最喜欢问的ArrayList & HashMap源码类初级问,你都会了?
11 0