Java中HashMap的底层原理(存储+查找)

HashMap底层实现采用了哈希表,这是一种非常重要的数据结构。

哈希表的基本结构就是“数组+链表”。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

HashMap存储键值对的过程:

在这里插入图片描述

//测试简单的hash算法
public class TestEasyHash{
	public static void main(String[] args){
		int h = 25860339;
		int length = 16;
		myHash(h,length);
	}
	public static int myHash(int h,int length){
		System.out.println(h&(length-1));
		System.out.println(h%length);
		return h&(length-1);
	}
}

HashMap取键值对的过程:

1、获得key的hashcode,通过hash()散列算法得到hash值,进而定位到数组中的位置。
2、在链表上挨个比较key对象,调用equals()方法,将key对象和链表上所有结点的key对象进行比较,直到碰到返回true的结点对象为止。
3、返回equals()为true的结点对象的value对象。

在这里插入图片描述
在这里插入图片描述

发布了115 篇原创文章 · 获赞 108 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Deep___Learning/article/details/104029411
今日推荐