我很惊讶地发现Java的LinkedList无法直接访问Node。如果我已经在某个地方存储了Node的引用并想将其用于取消链接,linkAfter,linkBefore ...怎么办?为什么要在O(n)再次搜索呢!这些方法不是公开的!
答案 0 :(得分:2)
LinkedList
中的节点确实对客户端隐藏,因此您不能“将Node的引用存储在某个地方”。
根据您的实际用例,您可以在公共节点上滚动自己的链接列表,或切换到其他集合,例如HashSet
(用于O(1)搜索和删除任意元素)。
答案 1 :(得分:0)
除了@mumpitz提到的ArrayList之外,根据您的应用程序,最好使用集合或映射。