在计算对象的哈希码时,如果我们有一个类型为 long 的属性,那么我们可以通过以下方法将其转换为 int:
1. int k = (int) (l);
2. int k = (int)(l^(l>>>32));
( l is an attribute of the object whose datatype is long)
建议使用第二种方法(Effective Java 中的 Joshua bloch)。这背后的原因是什么?我在下面产生了我的想法,请提供您的意见,无论我的断言是否正确?
如果你有其他东西,你可以添加它。谢谢。