【发布时间】:2017-03-21 11:47:31
【问题描述】:
我正在寻找一种实现具有双链表节点功能的类的方法。我不想重新发明轮子,但我在标准 java 库中看不到任何合适的东西,而且我在这个网站上找不到答案。
我需要的是一个对象数组,其中每个对象都知道它的邻居:就像标准 java.util.LinkedList 中的私有类 Note。
这里有几点说明:
1)我不能使用java.util.LinkedList,因为存储的对象没有指向邻居的链接。
2)我不能使用java.util.LinkedList ListIterator - 首先,我不想遍历所有列表来查找对象,我不想在任何地方保留对象索引 - 因为这会破坏程序的完整性。出于同样的原因,我不能将迭代器放在任何地方。
我需要的是具有插入/删除能力的对象列表, 而且当我传递对象时,我需要能够让代码访问对象邻居(上一个/下一个)。
我假设 Java 库没有这个?如果我要自己实现它,它会变得更糟。
3) 我无法创建将由我自己的类扩展以列出的基本 Node 类。我的派生类不是节点,这将打破 java 的继承范式。
4)我无法创建 Node 接口,因为它不能有可变成员(“prev”和“next”)
【问题讨论】:
-
")我无法创建基本 Node 类" - 为什么?您的问题令人困惑,您可能需要重新措辞或以其他方式澄清它。
-
信息太多。不清楚你真正的问题是什么。
-
domdom,Java 范式是“扩展”某些“节点”类,只有当类是“节点”时才允许。我现有的课程不是节点。使其成为节点将防止从其他基类派生它。并使代码更难支持。
-
tak3shi - 真正的问题是:标准 Java 库是否有“双向链表”? en.wikipedia.org/wiki/Doubly_linked_list,注意java.util.LinkedList - 不是真正的链表,因为Node接口没有暴露
标签: java linked-list