听说java中set集合中的元素是不可以重复的,但是我写的这个代码里面又重复了,求大神们释疑!。。。

2025-02-27 22:06:13
推荐回答(3个)
回答1:

这是因为你没有重写SetClass的equals和hashCode方法.

没有重写的时候,对象比较调用的是Object的equals方法,此时你new的每个人都是不同对象,及时名字和长度都一样,也不认为是一个对象.

eclipse为例,可以在文件上右键,自动生成这两个方法,生成的时候选择你需要判断equals的属性即可

回答2:

set 的equals是内容相等.
如果没有重写过的equals就是HashCode值相等,可以理解为地址.
重写过的,就要看对应的equals方法的说明了,根据实际用途来做,一般都是跟内容有关

回答3:

要去重复 请改写equals方法