这里为什么要用接口引用呢?

这里为什么要用接口引用呢?

ArrayList也可以使用吧?

remove(object o);方法,在移除数据的时候参数是对象,那我这里如果参数为new String("C++")是否就报错了?

正在回答

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

2回答

同学你好,remove(object o);传入的并不是存在集合中的对象,而是一个字符串对象;然后这个字符串再跟集合中的字符串比较,虽然是新创建的对象,但是调用的字符串的equals方法,比较的是内容是否相同,如果内容相同,则删除

如下

http://img1.sycdn.imooc.com//climg/5f2d0315097e363709210255.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 能掐会算 提问者 #1
    那如果我存放的是我的自定义类,那么我需要在自定义类中重写equals嘛?
    2020-08-07 15:47:23
  • 好帮手慕阿园 回复 提问者 能掐会算 #2
    同学你好,如果remove(object o);方法中传入的是一个新建的自定义对象,是需要重写equals方法的 祝学习愉快
    2020-08-07 15:58:48
好帮手慕阿园 2020-08-07 11:58:49

同学你好

1,这里使用ArrayList是可以的,List是ArrayList的父接口,通过List来接收ArrayList类对象的实现,也可以接收List其他子类对象的实现,这在以后的开发中是非常常用的一种形式!

2,是不会报错的,同样会将集合中为“C++”的字符串删除

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 能掐会算 #1
    关于第二点有一个需要问一下,remove(object o);传入的应该是存储在ArrayList中的对象,那么new String("C++")相当于创建了一个新的对象与ArrayList中的对象地址是不同的,这里为什么依然可以删除C++呢?
    2020-08-07 14:36:22
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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