从头开始的链表类与默认链表类



我一直在从头开始编写我的链表数据结构作为项目/作业的学生,我想知道在"现实世界"中开发人员是否必须编写自己的链表DS或使用Java文档中已经提供的任何链表对象。哪个更好& &;在什么情况下?

自定义的LinkedList实现很可能会更有效,因为它允许您根据自己的需求进行优化,但是JDK的LinkedList将始终更可取,因为它具有可重用性和可维护性优势:

  1. 没有人需要维护LinkedList的实施。
  2. 任何对List接口的未来添加都将自动继承。
  3. 开发人员阅读你的代码会立即明白发生了什么。
  4. 集合API有大量有用的实用方法,这些方法将会变得可用。
  5. 您的LinkedList将兼容许多使用List的第三方库。

如果您决定创建自定义List实现,您可以选择扩展AbstractSequentialList,以获得#2,#4和#5的好处。

非常简单的规则:除非你有很好的理由,否则不要做重新发明轮子。

含义:当你在做"专业"工作时;你总是平衡

A)重用现有组件

B)创造你自己的解决方案。

特别是对于任何面向"集合"的东西,很少有好的理由让完全重做一些事情。

因此,"技术"答案是:对于生产工作,你必须评估这两种选择的成本/收益;然后你再决定怎么做。但是,特别是对于来自Java 标准库的类,您应该倾向于重用。无论如何,你都依赖于这些库;所以不使用它们是没有意义的。

并给出一些需要考虑的事情:

A)从编写自己的组件中获益:避免了对第三方代码的依赖。您可能能够创建一些工作完美在您的设置. ...

B)这样做的成本:当然,随着时间的推移,创建和维护的直接成本(特别是维护)经常被严重低估!当然,还有"castle"在他的回答中列出的所有要点。

相关内容

  • 没有找到相关文章

最新更新