重写object的 hashcode和equals 方法,但是将同一个对象多次放入set 中,并没有调用equals 方法,而只是调用了hashcode 方法。 参考源码时发现相同的对象会略过equals方法。
以下为部分源码
if (p.hash == hash && ((k = p.key) == key || (key != null && key.equals(k))
其中 (k = p.key) == key 判断为true,从而略过后面的equals方法。
重写object的 hashcode和equals 方法,但是将同一个对象多次放入set 中,并没有调用equals 方法,而只是调用了hashcode 方法。 参考源码时发现相同的对象会略过equals方法。
以下为部分源码
if (p.hash == hash && ((k = p.key) == key || (key != null && key.equals(k))
其中 (k = p.key) == key 判断为true,从而略过后面的equals方法。