哈希值和HashSet集合存储数据的结构(哈希表)
作者:互联网
哈希值
哈希值:是一个十进制的整数,由系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来得到地址,不是数据实际存储的物理地址)3
在object类有一个方法,可以获取对象的哈希值
int hashcode()返回该对象的哈希码值。
hashcode方法的源码:
public native int hashcode()
native:代表该方法调用的是本地操作系统的方法
HashSet集合存储数据的结构(哈希表)
HashSet集合存储数据的结构(哈希表)jdk1.8版本之前:哈希表=数组+链表jdk1.8版本之后:哈希表=数组+链表:哈希表=数组+红黑树(提高查询的速度)哈希表的特点:速度快
两个元素不同,归是哈希值相同哈希冲突
如果链表的长r超过了8位那么就会把链表转换为红黑树(提高查询的速度)
原理图:
搜索
复制
标签:存储,哈希,HashSet,hashcode,链表,数组 来源: https://www.cnblogs.com/wsfj/p/16450532.html