【问题标题】:Java.Util Linked List Implementation from Scratch从零开始的 Java.Util 链表实现
【发布时间】:2020-11-18 00:33:05
【问题描述】:

我想用 java.util 库不包含的函数实现一个单链表,例如:返回链表中的中间节点并在链表中插入一个新的头。我的问题是: java.util 链表是什么类型的链表(例如单链表、双链表)?其次,我很想知道您是否建议我从头开始实现链表。我关心能够在没有第三方库的情况下维护自己的代码(因为依赖)并能够自定义它。我也想实现归并排序,我觉得有一个中间节点方法很重要。谢谢!!

【问题讨论】:

  • java.util.LinkedList 不公开对节点的直接访问,但您可以访问例如中间节点通过listIterator
  • 直接节点是什么意思(即你不能访问什么)? @LouisWasserman
  • 没有可以访问的公共 Node 类。
  • 但这不是多余的吗?您什么时候需要访问它?该库是一个通用链表.. @LouisWasserman
  • 没错,你没有。那是……重点?我建议LinkedList 可能已经能够通过其各种 API 做你想做的事情。

标签: java data-structures linked-list nodes doubly-linked-list


【解决方案1】:

LinkedList 的 Java 实现是一个双向链表。此外,它已经能够在头部/前面添加一个元素(如果我理解正确的话)。

链表相对简单,因此您可以根据需要从头开始实现它们(如果您也进行简单的搜索,则有很多教程)。但是,如果第三方开源库满足您的需求,我强烈建议您使用它。它可能比您可以管理的任何东西都得到更好的维护。如果您认为它落后或缺乏,您可以提供贡献。

对于归并排序,不确定为什么需要它。 Java 集合已经实现了merge sort,并使用了最有效和最新的可用算法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2019-12-17
    • 1970-01-01
    • 2022-01-20
    • 2023-03-15
    相关资源
    最近更新 更多