Hashset会为每个存入的对象计算出hashcode 然后存入相应的区域,
Test t1 = new Test(1,1);
Test t2 = new Test(2,2);
Test t3 = new Test(1,1);
Collections c = new Hashset();
c.add(t1);
c.add(t2);
c.add(t3);
System.out.println(c.size());
为什么把Test 对象中加上Hashcode()方法 就会输出2 而不加就输出3呢 不过不加 就不计算对象的hashcode了么?
老师说放对象之前会计算hashcode 然后计算出区域位置, 然后放入进去,下次再放入对象的时候会计算对象的hashcode 在算出区域位置 在到相应的区域进行比较 如果没有就存进去,那相同的对象计算出来的hashcode值不应该也是想同的么?