【问题标题】:Is there an in-built linked list node in Java librariesJava库中是否有内置链表节点
【发布时间】:2019-10-04 14:36:31
【问题描述】:

LinkedList 类对实体进行操作,并且节点没有直接暴露。是否有提供传统 LinkedList 接口的内置库?

PS:我看到Apache Collections LinkedList Node,Java 库中有一个吗?

【问题讨论】:

  • 一个好的LinkedList接口不应该暴露它的内部结构,所以你不应该知道里面有一些Node对象。
  • “传统的 LinkedList 接口”:那会是什么?
  • 出于好奇,您遇到了什么问题,这将解决什么问题?
  • 核心java中没有这样的类,太简单了,无法独立实现。在 Apache Collections 中,通过该类也是受保护的内部类,不供外部使用。

标签: java linked-list


【解决方案1】:

不在标准库中。您需要找到第三方库。有很多网站会告诉你如何写一个。

【讨论】:

    【解决方案2】:

    Java 集合 API 有 LinkedList,它在内部组织得非常像你想要的那样。

    但是要直接使用每个节点具有的所有这些 previsousnext 引用 你应该利用ListIterator,得到它

    iterator = linkedList.listIterator()
    

    最后一个 API 的行为有点不直观,但它允许您使用链表数据结构的所有优点来简化代码:

    • 您可以来回导航

      iterator.next() iterator.previous()

    • 你可以修改列表

      iterator.add() iterator.remove() iterator.set()

    • 您也可以双向移动索引并执行迭代器通常执行的其余操作,但双向移动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多