作业帮 > 综合 > 作业

Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/05 03:06:05
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
,这是在网上流传的答案,个人认为这是个错误的答案.JPI中写的很明白:set 不包含满足
e1.equals(e2)的元素对e1和e2
,由此可见回答使用equals()区分更合适.
应该从它俩的区别谈起,==是用来判断两者是否是同一对象(同一事物),而equals是用来判断是否引用同一个对象.再看一下Set里面存的是
对象,还是对象的引用.根据java的存储机制可知,set里面存放的是对象的引用,所以当两个元素只要满足了equals()时就已经指向同一个对象,
也就出现了重复元素.所以应该用equals()来判断.