hashCode = 1;
Iterator i = list.iterator();
while (i.hasNext()) {
Object obj = i.next();
hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode());
}
------解决思路----------------------
一般用质数是尽可能的避免重复,减少重复的概率
至于为什么用31,因为31=(2<<4)-1,明白了吧,31既是质数,又很方便的通过移位运算就能算出
n*31=(n<<4)-n