吴旭华 发表于 2024-12-25 11:21:55

java~重写hashcode时为什么要乘以31

在Java中,重写hashCode()方法时经常会使用31作为乘数,这是由于31具有一些独特的数学性质,使其成为一个优秀的选择。以下是几个原因:
1. 奇质数的特性

31是一个奇数和质数,这意味着它能有用地减少哈希冲突的概率。使用质数作为乘数可以帮助分散哈希值,从而提高哈希表的性能。
2. 位运算服从

在盘算机中,乘以31可以通过位运算来优化:
<ul>x * 31可以用 (x
页: [1]
查看完整版本: java~重写hashcode时为什么要乘以31