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

时间:2016-09-10 04:39:48

标签: java data-structures linked-list

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

2 个答案:

答案 0 :(得分:5)

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

  1. 没有人需要维护LinkedList
  2. 的实施
  3. List接口的任何未来添加都将自动继承。
  4. 阅读代码的开发人员将立即了解正在发生的事情。
  5. Collections API有许多有用的实用方法可供使用。
  6. 您的LinkedList将与许多使用List的第三方库兼容。
  7. 如果您决定创建自定义List实施,您可以选择延长AbstractSequentialList以获得#2,#4和可能#5的好处。

答案 1 :(得分:2)

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

含义:当你在做什么&#34;专业&#34;工作;你总是平衡

A)重新使用现有的组件

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

特别是对于任何&#34;集合&#34;导向很少有很好的理由完全重做一些东西。

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

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

A)编写自己的组件获得的收益:您避免依赖第三方代码。您可以创建在您的设置中完美的内容。 ...

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