如何从java中的LinkedList获取节点条目引用

问题描述

如何从LinkedList获取对实际节点(入口)对象的引用-不是其拥有的值
像这样的东西:

import java.util.LinkedList;

public class Main {

    public static void main(String[] args) {

        LinkedList<String> test = new LinkedList<String>();

        test.addLast("first");
        test.addLast("second");

        test.addLast("third");
        var thirdNodeReference = test.getLastNode(); // Does this even exist ?

        test.addLast("fourth");

        var secondNodeReference = thirdNodeReference.previous(); // To perform such operations.
    }

}

java LinkedList中是否存在像LinkedList.getLastNode()这样的方法,以便可以对其执行previous()next()操作?

我知道LinkedList.listIterator()存在,但没有用,因为我将拥有对每个Node(条目)的引用,并且我需要使用它们-例如上面代码中的lastNodeReference

如果JAVA标准库中不存在这样的功能,那么我可以使用任何第三方(外部)库吗?

原因:

我需要访问节点才能在remove()中执行O(1)操作。

在实际的JAVA code implementation中,它通过遍历列表以对路径上的每个节点执行O(N)来查找包含给定对象的Node,从而在equals()中执行此操作。另外,请检查此comment
如果我们直接引用Node对象,那么可以理想地在O(1)中执行此操作-因为remove()仅需要更改previousnext Node的2个指针。>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)