开发者社区 问答 正文

list类hashcode方法内容什么hashcode要这么计算?

hashCode = 1;
Iterator i = list.iterator();
while (i.hasNext()) {
Object obj = i.next();
hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode());
}

展开
收起
蛮大人123 2016-02-26 11:46:57 4231 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    hashcode的算法不唯一,只要保证,相同的变量(equals返回true),hashcode肯定相等,不同的变量,可以相等,可以不等,但是尽量不等,这两个条件就可以了。乘以31再加上后一位的hash,这个的目的就是尽量不等。

    2019-07-17 18:48:05
    赞同 展开评论
问答标签:
问答地址: