我正在尝试编写我自己的 ArrayList 版本(以了解它是如何工作的)并且我正在查看由java.lang.ArrayList实现的Cloneable接口(我希望保持与原始版本相同的合同)。
我对 clone() 方法的定义有点困惑,希望有人能为我的情况澄清一下。
我不太确定的部分是,如果有人在我的集合上使用 clone() 方法,它应该返回一个新的 ArrayList (意味着不是对现有的引用)。然而:
- 这是否意味着包含的每个对象也需要克隆?
- 我是否必须为每个实例使用“new”显式创建一个新实例(这应该很慢?)
- 我是否应该尝试在我的集合对象上使用 clone() 方法,以及如何确保它们覆盖 clone() 方法,因为 Cloneable 中的定义表明它不是明确需要的(该方法不在接口中)?
提前感谢您的帮助。