hashcode和hash算法的实现原理是什么

技术hashcode和hash算法的实现原理是什么本篇文章给大家分享的是有关hashcode和hash算法的实现原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一

本文是关于hashcode和hash算法的实现原理。边肖觉得很实用,所以想分享给大家学习。希望大家看完这篇文章能有所收获。我不多说。让我们和边肖一起看看。

哈希算法如何实现密钥的均匀分散?

在JDK,Object的hashcode方法是一个局部方法,也就是用C语言或者C实现,直接返回对象的内存地址。

我们没有重写hashCode方法,所以在HashMap中使用了对象的内存地址,所以它一定是不同的。

字符串类型如何覆盖hashCode方法?

/**

*字符串的char数组的个数每次乘以31,然后叠加,最后返回。因此,每个不同字符串返回的hashCode肯定是不同的。

*/

publishingtashcode(){ 0

inth=hash

if(h==0 value . length 0){ 0

char val[]=值;

for(inti=0;ivalue.lengthI){ 0

h=31 * h val[I];

}

hash=h;

}

returnh

}

那么为什么要用31呢?

冲突的风险很高。

31 * i==(i 5) - i

63溢出的风险更大。

15块怎么样?

00-1010,以便更好地统一哈希表的下标。

static finalinthash(Objectkey){ 0

inth

return(key==null)?0:(h=key.hashcode())^(h16);

}

也就是说,计算出的int类型32位(4字节),而不是低16位,将高16位移过去,以便尽可能均匀地分布它们。

也就是hashcode和hash算法的实现原理是什么。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/37104.html

(0)

相关推荐

  • 怎样进行Vue2移动端开发环境搭建

    技术怎样进行Vue2移动端开发环境搭建这期内容当中小编将会给大家带来有关怎样进行Vue2移动端开发环境搭建,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这里给出基于 Vue2 的移动端

    攻略 2021年11月16日
  • Redis中如何实现支持几乎所有加锁场景的分布式锁

    技术Redis中如何实现支持几乎所有加锁场景的分布式锁小编给大家分享一下Redis中如何实现支持几乎所有加锁场景的分布式锁,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下

    攻略 2021年11月2日
  • css中加号是什么意思

    技术css中加号是什么意思这篇文章主要讲解了“css中加号是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css中加号是什么意思”吧!

    攻略 2021年11月17日
  • 如何修改图片大小尺寸,如何修改照片的尺寸和大小

    技术如何修改图片大小尺寸,如何修改照片的尺寸和大小使用美图秀秀可以做到如何修改图片大小尺寸。1、打开“美图秀秀”,点击“打开图片”,这里选择一个后缀为”jpg”图片文件。2、打开图片后,在屏幕的右下角点击”EXIF“,可

    生活 2021年10月20日
  • C语言 存款预算

    技术C语言 存款预算 C语言 存款预算本关任务:编写一个小程序,计算初始时该存入银行多少钱。任务具体描述如下: 假设银行一年整存整取的月息为1.875%,现在某人手头有一笔钱,他打算在今后5年中,每年年

    礼包 2021年11月27日
  • 兄弟造句两种意思造句,一个词语有两个意思,造句

    技术兄弟造句两种意思造句,一个词语有两个意思,造句一兄弟造句两种意思造句、手腕  1、手和臂连接的部分。
    举例:那用圆润的手腕,遮着太阳,一对黑大的眼睛,向我注视的,不是S是谁?
    2、手段,伎俩。
    举例:他作梦也想

    生活 2021年10月25日