【发布时间】:2019-10-21 04:09:07
【问题描述】:
我在一次采访中被问到这个问题。
我们如何创建一个自定义的ArrayList,除了remove、removeAll() 方法之外的所有方法都在ArrayList 中实现?
所以,我的ArrayList 实现一定不能有这两个方法。
我得到的一个解决方案是将我的类扩展到ArrayList 类并实现除remove() 和removeAll() 方法之外的所有方法。
我不确定这是否正确。
【问题讨论】:
-
澄清一下,我假设您的解决方案是创建一个类(例如
MyCustomArrayList)扩展ArrayList,然后覆盖remove()和@ 987654332@ 方法是无操作的。 (如果该假设不准确,请纠正我)。如果是这样,那似乎是一个很好的解决方案。您是否在寻找替代解决方案? -
这是我想到的解决方案,但是面试官特别希望我的自定义ArrayList不要有这些方法。
-
是否允许修改
ArrayList类?您是否需要专门对ArrayList类进行子类化? -
如果您的 type 是
List或ArrayList,那么您将拥有remove和removeAll方法 -
假设方法根本不存在——并且在调用时不能简单地抛出一些异常——那么唯一的方法是创建你自己的
ArrayList,它不实现List(或@987654341 @)。