我从头开始编写我的链表数据结构,作为项目/作业的学生,我想知道"现实世界"开发人员是否必须编写自己的链表DS或使用Java文档中任何已提供的链表对象。哪个更好&在什么情况下?
答案 0 :(得分:5)
自定义LinkedList
实现很可能会更有效率,因为它允许您根据需要进行优化,但JDK的LinkedList
始终优先考虑其可重用性和可维护性优势:< / p>
LinkedList
。List
接口的任何未来添加都将自动继承。LinkedList
将与许多使用List
的第三方库兼容。如果您决定创建自定义List
实施,您可以选择延长AbstractSequentialList
以获得#2,#4和可能#5的好处。
答案 1 :(得分:2)
非常简单的规则:除非你有充分的理由这样做,否则不重新发明轮子。
含义:当你在做什么&#34;专业&#34;工作;你总是平衡
A)重新使用现有的组件
与
B)创建自己的解决方案。
特别是对于任何&#34;集合&#34;导向很少有很好的理由完全重做一些东西。
因此,&#34;技术&#34;答案是:对于生产工作,您必须评估这两种替代方案的成本/收益;然后你决定做什么。但特别是对于来自Java 标准库的类,您应该更喜欢重用。无论如何,你依赖这些图书馆;所以不使用它们是没有意义的。
并提供一些可以考虑的事项:
A)编写自己的组件获得的收益:您避免依赖第三方代码。您可以创建在您的设置中完美的内容。 ...
B)这样做的成本:当然,随着时间的推移创建和维护自己的解决方案的直接成本(尤其是维护工作经常被严重低估!当然,所有那些点和#34;城堡&#34;在他的回答中列出。