import java.util.HashSet;
class A{
public boolean equals(Object obj) {
return false;
}
public int hashCode() {
return 1;
}
}
public class Fu {
public static void main(String[] args) {
HashSet center =new HashSet();
center.add(new A());
center.add(new A());
System.out.println(center);
}
}
public boolean equals(Object obj) {
return false;
}
public int hashCode() {
return 1;
}
}
public class Fu {
public static void main(String[] args) {
HashSet center =new HashSet();
center.add(new A());
center.add(new A());
System.out.println(center);
}
}
HashSet在添加,删除以及判断时,这些方法会自动调用hashCode()和equals()的。
HashCode()和equals()方法都根据是HashSet集合的底层数据结构调用的,这个就要清楚的了解哈希表的原理了,也就是说当你把对象地址存储到集合中的时候会自动的先后调用这两个方法。如果要查原理的话,可能就要去查看源码了。
HashCode()和equals()方法都根据是HashSet集合的底层数据结构调用的,这个就要清楚的了解哈希表的原理了,也就是说当你把对象地址存储到集合中的时候会自动的先后调用这两个方法。如果要查原理的话,可能就要去查看源码了。