java创建双链表

时间:2017-03-21 11:47:32

标签: java linked-list

我正在寻找一种实现具有双链表节点功能的类的方法。我不想重新发明轮子,但我不会在标准的java库中看到任何合适的东西,而且我在这个网站上找不到答案。

我需要的是拥有一个对象数组,其中每个对象都知道它的邻居:就像标准java.util.LinkedList中的私有类Note。

这里有几点说明:

1)我可以使用java.util.LinkedList因为存储的对象没有链接到邻居。

2)我可以使用java.util.LinkedList ListIterator - 首先,我不想迭代所有列表以找到对象,而我不会&#39 ; t保持对象索引在任何地方 - 因为这将破坏程序的完整性。我不能出于同样的原因将Iterator保留在任何地方。

我需要的是具有插入/删除功能的对象列表, 当我传递周围的对象时,我需要能够让代码访问对象邻居(上一个/下一个)。

我认为Java库没有这个?如果我自己实现这一点,那就会变得更糟。

3)我无法创建基本的Node类,它将由我自己的类扩展以列出。我的派生类不是一个节点,这将破坏java的继承范式。

4)我无法创建Node接口,因为它不具备可变成员(" prev"" next")

1 个答案:

答案 0 :(得分:0)

如果您希望您的班级能够看到彼此相邻的节点并且#34;,您可以随时向您的班级提供其自己的变量prev和next,并定义插入方法。

public class MyClass {
    public MyClass prev;
    public MyClass next;
    // Using string as an example for data
    String data;

    public void insert(MyClass myclass, String insert_after) {
        // will depend if you want it sorted or not
    }

    public void delete(String delete) {
        // itterate through recursively to find the node with
        // next.data equal to remove then replace next with next.next
    }
}

请注意,这是在手机上输入的(@ 5am),请随时评论错误。