面试重点:1.普通类构造的属性相同的对象可以重复,因为属性相同地址不同。
2.String类构造的对象相同,在HashSet中重复不可以重复添加??????
public class SetMethod {
public static void main(String[] args) {
Set<Object> set = new HashSet<>();
set.add(new dog("大黄"));
set.add(new dog("大黄"));
set.add(new String("张三"));
set.add(new String("张三"));
set.add(new String("王恒"));
//张三重复了,狗没有重复。
System.out.println("set="+set);//set=[张三, dog@4554617c, 王恒, dog@1b6d3586]
}
}
class dog{
String name;
public dog(String name) {
this.name=name;
}
}
本文通过一个Java实例展示了HashSet如何处理对象的唯一性。即使两个对象属性相同,由于引用不同,它们在HashSet中被视为不同的元素。然而,两个String对象如果内容相同,即使引用不同,在HashSet中也会被认为是重复的,不会被添加多次。这揭示了HashSet在判断对象唯一性时基于的是对象的equals()和hashCode()方法。
4万+

被折叠的 条评论
为什么被折叠?



