java – 一个好的哈希函数,用于访问整数,字符串?
我在面试中遇到了一些情况,我需要使用整数或字符串的哈希函数.在这种情况下,我们应该选择哪些?我在这些情况下出错了,因为我最终选择了那些产生大量碰撞的东西,然后哈希函数往往是数学的,你不能在面试中回忆一下.有没有一般的建议,至少面试官对你的整数或字符串输入的方法感到满意?在“采访情况”中,哪些功能对于两个投入都是足够的
解决方法
这是
Effective java page 33的简单食谱:
>在一个称为result的int变量中存储一些常量的非零值,例如17. > >如果该字段是一个布尔值,则计算(f?1:0). >将步骤2.1中计算的哈希码c与以下结果相结合: >返回结果.>完成编写hashCode方法后,问问自己相等的实例具有相等的哈希码.编写单元测试来验证你的直觉!如果相等的实例具有不等的哈希码,可以弄清楚为什么并解决问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |