“您是否建议继承内置的链接列表以便为我的多态对象进行自定义?还是应该从头开始构建链接列表?”
答案 0 :(得分:2)
我不确定上下文是什么,但我永远不会(好吧,几乎从不)从头开始构建链接列表。你可以考虑的而不是继承是顺便使用委托。为“多态对象”定义一个接口,并简单地将所有链接列表相关的调用委托给链接列表。
答案 1 :(得分:1)
除非你真的真的需要,否则我不会自己写。通过“多态对象”我假设你的意思是你有一个类层次结构,并希望将任何这些类的实例放在列表中。没有什么可以阻止你这样做,虽然泛型将限制编译器看到的类型,你可以通过铸造作为最后的手段。或者您可以声明一个没有泛型类型的列表,但在这种情况下,您将丢失所有可能获得的编译时检查。
对于99.9999%的情况,默认的LinkedList
实施将会没问题。除非默认实现完全不合适,否则使用它可能比使用自己的更好。如果您认为可能,请更新您的问题或以非常明确的细节开始新问题。可能有一种使用默认实现的好方法。
所有这一切,如果这是为了学习,请随时写自己的链表。另请注意,您提出的任何内容最多都必须遵循默认LinkedList
所具有的相同的泛型/输入规则。如果你将'多态对象'直接构建到列表中,那很好,但是你刚刚创建了一个真正特定的实现,它只对你有用(可能没问题)。
答案 2 :(得分:0)
如果您需要创建自己的LinkedList版本来更改一个或多个方法的行为,则应使用Decorator模式。我还建议使用Guava的ForwardingList课程来完成大部分工作。