3-8问题

3-8问题

  1. equals判断桶里哪个是我们要找的,if(this==obj) return true;这个this是什么?视频中说的是当前类的对象,是不是this指的是,在这个桶中所有cat类的对象,系统会自动把这些对象和传入的obj对象比较?

  2. 当equals返回true时,是返回给while(it.hasNext()){System.out.println(it.next());中的it.hasNext()吗?

  3. 当equals返回true时为什么可以不输出相同的对象,false时结束程序?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕珊 2018-03-21 20:12:14

关于this的问题,在调用equals方法进行比较时,肯定是两个cat进行比较,比如cat1.equals(cat2),那么this就是指调用equals()方法的那个cat1,obj指的是cat2

http://img1.sycdn.imooc.com//climg/5ab24bad00019eaa07330041.jpg关于你提到的这个问题equals()返回true,跟显示没什么关系

这个原因是这样的,Set中不允许添加重复数据,所以在添加数据时要判断该数据是否存在,是否存在就是要调用hashCode()和equals()方法进行判断。也就是判断两个对象是否相等

祝学习愉快!

  • 提问者 qq_9o後虛徦_0 #1
    1.那equals中的this是指什么?我知道this是指当前类的对象,那当前类对象是什么,麻烦说具体点。 2.那重复的数据不显示出来,是如何实现的? 3.equals()返回的true和false是返回给谁?有什么用?
    2018-03-21 22:59:01
  • 好帮手慕雪 回复 提问者 qq_9o後虛徦_0 #2
    1)例如one.equals(two)那么代码中的this就是指one。如果two.equals(three)那么代码中的this就是指two。关键看谁调用的此方法就是谁。2)调用hashCode()和equals()方法进行判断是否放进去的啊。 3)谁接收就是返回给谁。例如:flag=one.equals(two)。那就是返回给flag的。
    2018-03-22 10:39:12
  • 提问者 qq_9o後虛徦_0 回复 好帮手慕雪 #3
    1.如果equals返回false那就是说数据重复不能输出的意思吗? 2.equals返回false的话系统自动不输出这个对象?
    2018-03-22 11:00:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师