看视频到了集合部分,有了点疑惑(其实算是有点钻牛角尖吧)
和集合没多大关系,关于HashSet的HashCode方法和equals方法
equals方法比较的不是地址值吗?地址值不就是哈希值吗?哈希值一样equals完不一样呢。
- package lianxibao2;
- public class Demo01 {
- public static void main(String[] args) {
- Person p1 = new Person("lisi03", 33);
- Person p2 = new Person("lisi03", 33);
- System.out.println(p1);// 结果:lianxibao2.Person@3c
- System.out.println(p2);// 结果:lianxibao2.Person@3c
- System.out.println(p1.equals(p2));// 结果false
- }
- }
- class Person {
- private String name;
- private int age;
- // 重写了hashCode这个方法
- public int hashCode() {
- System.out.println("hashCode");
- return 60;
- }
- Person(String name, int age) {
- this.name = name;
- this.age = age;
- }
- }
复制代码
|