hashSet使用时0,重写方法被使用的疑惑

hashSet使用时0,重写方法被使用的疑惑

本节课代码中Goods类,被调用后,里面的hashCode(),equals(),toString()都是重写的,
HashSet goodsSet = new HashSet<>();
goodsSet.add(new Goods(“11111”, “IPHONE”));
goodsSet.add(new Goods(“11111”, “IPHONE”));
goodsSet.add(new Goods(“22222”, “荣耀”));
goodsSet.add(new Goods(“33333”, “IPHONE”));
System.out.println(goodsSet);
1、就这样一下子,里面的三个重写方法就都使用上了吗?
2、这3个方法【hashCode(),equals(),toString()】是hashSet使用必定会运行的方法吗?
3、以后使用hashCode,这几个都要自己重写一下吗?

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

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

1回答
好帮手慕小小 2022-11-28 12:26:20

同学你好

  1. 是的。上述代码使用到了这三个重写方法。

  2. hashCode(),equals()是在添加元素时会调用的方法,toString()是在System.out.println(goodsSet);时会调用的方法。

  3. 建议均重写。

祝学习愉快~

  • 提问者 柯九思 #1

    虽然还是懵懂,但是目前就按老师说的做,以后做项目是不是这几个方法也重写。

    2023-01-03 13:04:14
  • 好帮手慕小小 回复 提问者 柯九思 #2

    同学你好,建议重写,但并不表示是必须的还需根据实际需求决定。若程序运行过程中未使用到这几个方法则可不必重写。

    同学若想进一步了解上述三个方法的执行情况,建议使用debug模式运行代码观察其具体执行过程。

    祝学习愉快~

    2023-01-03 13:28:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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