1. 首页
  2. 编程语言
  3. Java
  4. Java HashMap实现原理分析(一)

Java HashMap实现原理分析(一)

上传者: 2022-01-15 07:53:19上传 PDF文件 85.30 KB 热度 9次

一般大家都知道HashMap是通过put操作把一组键值对存储到HashMap中,然后可以通过get去获取key对应的value。下面我们就来对put和get这两个过程做一个分析。HashMap把用户传入的key和value封装成一个Node对象,把该Node对象放入到table对应的位置。由于数组的访问时间复杂度是O,因此Map的get操作也可以认为是O。用户通过key访问map获取value的时候,原理是用key的hash值来与数组的大小取模获取数组的索引。但实际在HashMap实现中,对取模运算进行了一下优化,采用了下面看一下,hash的实现逻辑从上面的源码看:。根据上面计算结果可知,虽然key1和key2值不同,但是最后得到的table的索引都是1,这样就会出现了冲突。当key和自己的高16位进行异或操作的后的值的低16位中同时保留了原始key低16位和高16位的特征。

下载地址
用户评论