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

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

答案:
Set里的元素可以通过迭代器遍历出来,调用 equals()判断是否有重复的

                                  ==
    比较两个变量的值是否相等,也就是说,比较变量所对应的内存中所存

储的数值是否相同
例如:对于指向对象类型的变量
Object obj1 = new Object();
Object obj2 = new Object();
变量 obj 是一个内存,new Object()是另一个内存
二者相等,所以变量 obj 所对应的内存中存储的数值就是对象占用的那
块内存的首地址
由于它们指向了不同的对象,首地址不同,所以== 返回false

                             equals
  equals 方法是用于比较两个独立对象的内容是否相同

例如:
Object obj1 = new Object(“bb”);
Object obj2 = new Object(“bb”);
这两个对象中的内容是相同的,所以,表达式 obj1.equals(obj2)将返回
true。
如果一个类没有自己定义 equals 方法,它默认的 equals 方法(从 Object 类继承的)这时候使用equals 和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回 false。如果你编写的类希望能够比较该类创建的两个实例对象的内容是否相同,那么你必须覆盖 equals
方法,由你自己写代码来决定在什么情况即可认为两个对象的内容是相同的。

总结:
“==” 用来比较两个变量指向的对象是否为同一个;

equals()用来比较变量指向的两个独立的对象的内容和类型是否相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值