哈希基础

本文介绍了哈希结构的基础知识,包括JDK中的Hashtable和HashMap的区别。HashMap是非线程安全且允许null值,而Hashtable则相反。哈希结构依赖Key的hashCode值计算数组索引,解决冲突的方法是使用链表,JDK1.8后引入红黑树以提高查询效率。当冲突严重导致链表过长时,会转换为红黑树。
摘要由CSDN通过智能技术生成

哈希结构

1,JDK中提供了两种哈希表
Hashtable和HashMap
Hashtable和HashMap的区别
*(1)*Hashtable,旧,线程安全的,不允许Key与Value为null值,只支持非空对象;
Hashtable的物理结构的实现:-----数组+链表
(2)HashMap,新,线程不安全的,允许Key与Value为null值,
HashMap的物理结构实现:
---------JDK1.7及之前(数组+链表)
---------JDK1.8及之后(数组+链表/红黑树)
2,哈希结构与Key对象的hashCode值紧密相关;
—每一个对象都有hashCode值。
1,理想状态下,每一个对象都有唯一的hashCode值
2,实际中遵循几个常规协定:
----------如果两个对象的hashCode值不相同,那么他们一定不相同(即调用equals方法返回false)。
----------如果两个对象的equals方法返回了true,那么要求他们的hashCode值必须相同。
----------如果两个对象的hashCode值一样,那么他们不一定相同(即调用equals方法可能相同,也可能不同)。
3.哈希结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值