1.java计算公式

@Overridepublic int hashCode() {//设置初始值int result = 17;//假设有效域为: name,age,idCardNo,incomeAnnual,sex,brithDayint c = 0;//计算name (String为对象类型,他的计算直接调用本身的hashCode)c = name.hashCode();result = result * 37 + c;//计算age (int/byte/char/short类型,他的计算直接调用本身的值)c = this.getAge();result = result * 37 + c;//计算idCardNo (long类型,他的计算 (int)(field^(field >>> 32)) 无符号右移32位)c = (int) (this.idCardNo ^ (this.idCardNo >>> 32));result = result * 37 + c;//计算 incomeAnnual (double类型,他的计算 Double.doubleToLongBits(field)后,再按Long类型计算 )//(float类型,他的计算 Float.floatToIntBits(field)  )long tmp = Double.doubleToLongBits(this.incomeAnnual);c = (int) (tmp ^ (tmp >>> 32));result = result * 37 + c;//计算 sex (sex为boolean类型,他的计算直接调用 c=sex?1:0)c = this.isSex() ? 1 : 0;result = result * 37 + c;//计算 brithDay (brithDay为Date对象类型,他的计算直接调用 本身的hashCode)c = this.getBirthDay().hashCode();result = result * 37 + c;return result;}

2. .net计算公式

public class HashCodeTest{public static void Excute(){var man = new Man(){Age = 10,BirthDay = new DateTime(1950,1,1),IdCardNo = 2139095040,IncomeAnnual = 10000000.5,Name = "Aven",Sex = true};var hasCode = man.GetHashCode();Console.WriteLine(hasCode);}}class Man{public long IdCardNo { get; set; }public int Age { get; set; }public string Name { get; set; }public double IncomeAnnual { get; set; }public bool Sex { get; set; }public DateTime BirthDay { get; set; }public override int GetHashCode(){//设置初始值int result = 17;//假设有效域为: name,age,idCardNo,incomeAnnual,sex,brithDayint c = 0;//计算name (String为对象类型,他的计算直接调用本身的hashCode)c = Name.GetHashCode();result = result * 37 + c;//计算age (int/byte/char/short类型,他的计算直接调用本身的值)c = this.Age;result = result * 37 + c;//计算idCardNo (long类型,他的计算 (int)(field^(field >> 32)) 有符号右移32位,符号位不移动)c = (int)(this.IdCardNo ^ (this.IdCardNo >> 32));result = result * 37 + c;//计算 incomeAnnual (double类型,他的计算 BitConverter.DoubleToInt64Bits(field)后,再按Long类型计算 )//(float类型,他的计算 BitConverter.ToInt32(BitConverter.GetBytes(this.IncomeAnnual),0) )long tmp = BitConverter.DoubleToInt64Bits(this.IncomeAnnual);c = (int)(tmp ^ (tmp >> 32));result = result * 37 + c;//计算 sex (sex为boolean类型,他的计算直接调用 c=sex?1:0)c = this.Sex ? 1 : 0;result = result * 37 + c;//计算 brithDay (brithDay为Date对象类型,他的计算直接调用 本身的hashCode)c = this.BirthDay.GetHashCode();result = result * 37 + c;return result;}}

转载于:https://www.cnblogs.com/zhshlimi/p/8471752.html

计算hashCode通用计算公式相关推荐

  1. hashmap计算hashcode时为什么要把高位右移16位

    写在前面: 1.如有错误请看官斧正. 2.建议把例子复制出去,自己用各种位运算算一下,然后也像我这样把异同处标出来,这样能在自己计算的过程中有更深的领悟. 一.hashmap计算hashcode时为什 ...

  2. 【计算理论】可判定性 ( 计算模型与语言 | 区分 可计算语言 与 可判定语言 | 证明 通用图灵机语言是 可计算语言 | 通用任务图灵机 与 特殊任务图灵机 )

    文章目录 一.计算模型与语言 二.区分 可计算语言 与 可判定语言 三.证明 ATM\rm A_{TM}ATM​ 语言 可计算 四.通用 ( Universal ) 任务图灵机 与 特殊任务图灵机 一 ...

  3. 阿里云服务器共享型、计算型和通用型有什么区别?

    阿里云服务器的CPU种类有很多,当阿里云搞活动的时候,往往会有共享型.计算型.通用型这几款,那么他们之间有什么区别呢? 共享型: 共享型目前常见的型号是共享标准型s6和共享计算型n4. 共享型产品采用 ...

  4. 怎么计算机会成本,机会成本计算公式,实例解读机会成本

    机会成本计算公式,实例解读机会成本 罗国秀 2019-10-30 10:55:45    希财网 在理财投资活动中,投资者经常要做决策,而每一个决策都必定会舍弃一些东西,也就是人们常说的机会成本.那么 ...

  5. 计算机vb计算函数值,VB计算公式及值.doc

    VB计算公式及值 VB表达式和顺序结构程序 学习目标: 学会把一般数学.物理的计算公式转换为VB表达式,初步学会构建VB表达式. 了解常用数据类型,理解常量.变量.函数和表达式的概念. 掌握赋值语句的 ...

  6. 卷积神经网络卷积计算,卷积网络计算公式

    卷积运算的过程是什么?卷积计算的矩阵是怎么来的,如下图,这个卷积运算示意图怎么理解? 首先,卷积核相同,输入相同,输出的特征是一样的.只不过将输出的矩阵形式换成了列向量的形式. 实质上一般卷积运算与矩 ...

  7. 神经网络参数量和计算量,神经网络计算公式

    1.BP人工神经网络 人工神经网络(artificialneuralnetwork,ANN)指由大量与自然神经系统相类似的神经元联结而成的网络,是用工程技术手段模拟生物网络结构特征和功能特征的一类人工 ...

  8. Java计算排名通用方法

    //该方法可用于分数排名,购买量排名等排名计算操作//传入需要处理的集合和数字public int getClassRank(List<BuyerCountRanking> list,do ...

  9. 平流式沉淀池流量计算_平流沉淀池计算公式(高版本格式)

    说明:在计算的过程中需要输入的数据采用蓝色字体表示. 1.设计进水水质参数 设计流量(Q) 52800 m3/d 设计水温(T) 25 COD(C 0 ) 500 mg/L SS(S 0 ) 400 ...

最新文章

  1. 开源云计算平台 abiCloud
  2. XCTF-Web-高手区-supersqli
  3. 在Linux上启动oracle 11g OEM
  4. 手也很光滑的飞鸽传书
  5. 8位并行左移串行转换电路_74ls194串行数据到并行数据的转换
  6. nginx 使用自定义 log_format 以及输出自定义http头
  7. 《高斯牛顿优化算法--第一讲》原理推导
  8. vs2013 Matlab 2018 (64)混合编程
  9. 苹果妙控鼠标二代(Magic Mouse 2 )如何连接到 Window 10系统
  10. SSIS(简单数据抽取过程介绍)
  11. 利用YYLabel 进行图文混排+高度计算
  12. OWC资料收集-绑定到数据源 Office XP 图表组件
  13. 计算机上无线网络开关在哪里,笔记本无线网络开关在哪里
  14. java的nullpoint_java.lang.NullPointerException
  15. linux中的块缓冲
  16. 让群晖ds218play同树莓3B+派互通有无
  17. 大话卫星导航中的信号处理系列文章——全球卫星导航系统介绍
  18. easyExcell
  19. 【中标麒麟】中标麒麟安装中文输入法
  20. android 复制屏幕,iphone或者android的手机或者pad可以屏幕复制到Z1上了!

热门文章

  1. 【计算机数学】二次规划(QP)问题
  2. 【微信小程序】接口生成自定义首页二维码
  3. 弹性云主机利用云镜像克隆新开、迁移数据[云镜像]
  4. 腾讯云下centos git 克隆远程仓库
  5. springboot微信点餐系统项目设计
  6. 武汉大学计算机学院期末考试时间,【通知公告】关于2018-2019学年第二学期期末考试工作安排的通知...
  7. 视频加密中令人头疼的录屏行为怎么防范?
  8. 十二星座----射手
  9. Android Studio 连接逍遥模拟器
  10. 《阿里云服务器教程2》:如何远程连接linux系统阿里云服务器ECS