首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >高效Java hashCode()实现中的位移位

高效Java hashCode()实现中的位移位
EN

Stack Overflow用户
提问于 2010-05-13 22:32:55
回答 2查看 9.4K关注 0票数 21

我想知道是否有人能详细解释一下

(int)(l ^ (l >>> 32));

在以下hashcode实现(由eclipse生成,但与Effective相同)中:

private int i;
private char c; 
private boolean b;
private short s;
private long l;
private double d;
private float f;

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + i;
    result = prime * result + s;
    result = prime * result + (b ? 1231 : 1237);
    result = prime * result + c;
    long t = Double.doubleToLongBits(d);
    result = prime * result + (int) (t ^ (t >>> 32));
    result = prime * result + Float.floatToIntBits(f);
    result = prime * result + (int) (l ^ (l >>> 32));
    return result;
}

谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2827612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档