Java LinkedList无法直接访问节点

Java LinkedList无法直接访问节点,java,linked-list,Java,Linked List,我惊讶地发现Java的LinkedList无法直接访问节点。如果我已经在某处存储了节点的引用,并希望将其用于取消链接、linkAfter、linkBefore。。。为什么要在O(n)处再次搜索它?!!这些方法不是公开的 链接列表中的节点实际上对客户端是隐藏的,因此您不能“将节点的引用存储在某处” 根据您的实际使用情况,您可以使用公共节点滚动您自己的链接列表,或者切换到不同的集合,如哈希集(用于O(1)搜索和删除任意元素)。链接列表中的节点确实对客户端隐藏,因此您无法“存储节点引用的某处” 根据您

我惊讶地发现Java的LinkedList无法直接访问节点。如果我已经在某处存储了节点的引用,并希望将其用于取消链接、linkAfter、linkBefore。。。为什么要在O(n)处再次搜索它?!!这些方法不是公开的

链接列表中的节点实际上对客户端是隐藏的,因此您不能“将节点的引用存储在某处”


根据您的实际使用情况,您可以使用公共节点滚动您自己的链接列表,或者切换到不同的集合,如
哈希集
(用于O(1)搜索和删除任意元素)。

链接列表中的节点确实对客户端隐藏,因此您无法“存储节点引用的某处”


根据您的实际使用情况,您可以使用公共节点滚动您自己的链表,或者切换到不同的集合,例如
哈希集
(用于O(1)搜索和删除任意元素)。

根据您的应用程序,您最好使用集合或映射,除了@mumpitz提到的ArrayList。

根据您的应用程序,除了@mumpitz提到的ArrayList之外,您最好使用集合或映射。

LinkedList包装列表上的所有操作,并为您提供使用它们的方法。如果您需要直接访问某些元素而无需对列表进行内部迭代,那么ArrayList可能是更好的选择?但是,您可以存储
迭代器
(或
列表迭代器
)。这对于您的用例来说已经足够了。实现您自己的LinkedList。Java只提供标准的函数和特性,如何在不使用任何
迭代器的情况下存储节点引用?这是不可能的,因为
LinkedList
不公开其节点LinkedList的可能副本会包装列表上的所有操作,并为您提供使用它们的方法。如果您需要直接访问某些元素而无需对列表进行内部迭代,那么ArrayList可能是更好的选择?但是,您可以存储
迭代器
(或
列表迭代器
)。这对于您的用例来说已经足够了。实现您自己的LinkedList。Java只提供标准的函数和特性,如何在不使用任何
迭代器的情况下存储节点引用?这是不可能的,因为
LinkedList
不公开其节点可能重复的
linkAfter
linkBefore
表示顺序…
linkAfter
linkBefore
表示顺序。。。