繁体   English   中英

从头开始链接列表类与默认链表列表?

[英]Linked list class from scratch vs Default linked list class?

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

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

  1. 没有人需要维护LinkedList的实现。
  2. 将来会自动继承List接口的任何添加内容。
  3. 阅读代码的开发人员将立即了解正在发生的事情。
  4. Collections API有许多有用的实用方法可供使用。
  5. 您的LinkedList将与许多使用List的第三方库兼容。

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

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

含义:当你做“专业”工作时; 你永远平衡

A)重新使用现有的组件

B)创建自己的解决方案。

特别是对于任何“收集”导向的东西, 完全重做某些东西的理由很少。

因此,“技术”答案是:对于生产工作,您必须评估这两种替代方案的成本/收益; 然后你决定做什么。 但特别是对于来自Java 标准库的类,您应该更喜欢重用。 无论如何,你依赖这些图书馆; 所以不使用它们是没有意义的。

并提供一些可以考虑的事情:

A)从编写自己的组件中获益:避免依赖第三方代码。 您可以创建在您的设置中完美运行的东西。 ...

B)这样做的成本:当然,随着时间的推移创建和维护自己的解决方案的直接成本(尤其是维护经常被严重低估!当然,所有那些“城堡”在他的答案中列出的点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM