HashSet集合hashcode和equals的影响

来源:互联网 发布:python 嵌套字典列表 编辑:程序博客网 时间:2024/05/22 12:29
package demo;import java.util.HashSet;import java.util.Set;public class HashTest {      private int i;        public int getI() {          return i;      }        public void setI(int i) {          this.i = i;      }        public int hashCode() {          return i % 10;      }        public final static void main(String[] args) {          HashTest a = new HashTest();          HashTest b = new HashTest();          HashTest c = b;        a.setI(1);          b.setI(1);          Set<HashTest> set = new HashSet<HashTest>();          set.add(a);          set.add(b);          System.out.println(a.hashCode() == b.hashCode());           //  true        System.out.println(b.hashCode() == c.hashCode());           //  true        System.out.println(a.equals(b));                            //  false        System.out.println(b.equals(c));                            //  true        System.out.println(set);                                    //  [demo.HashTest@1, demo.HashTest@1]    }  } 
hashcode一样去调用类的equals方法判断,所以即使hashcode相同,还是会继续存入hsahset集合的
阅读全文
0 0