我有一个包含几个特殊特殊元素的元素列表,我需要在常量时间内找到这些元素的邻居。这听起来很容易使用双向链表:简单地存储对包含这些特定元素的节点的引用,并检查它们的前一个节点和下一个节点。 (我也喜欢使用链表,因为我经常删除和添加元素,列表很大,性能尤为重要)。访问Java LinkedList的更低级别?
但是,似乎Java的LinkedList不允许我存储包含元素的节点。是对的吗?如果是这样,是否有干净的做我需要做的事情?这不应该很难,但我没有找到解决方案。
这需要与不断变化的列表一起工作,我更喜欢在更改过程中不必更新任何内容(例如,如果我使用数组,我将不得不在数组中移动时不断更新它们的索引)。此外,我可能需要在未来从该特殊节点开始遍历列表而不浪费时间来查找该节点(这对于链表的低级实现也很容易),所以我会更感激解决方案也解决了这个问题。
编辑:谢谢你的答案。不过,我希望有一个解决方案不涉及实现我自己的链接列表版本。有一个吗?
我可能是错的,但扩展'AbstractSequentialList'似乎是你最好的选择。 – biziclop 2011-03-24 23:39:49
ArrayList会做你想做的。 – 2011-03-24 23:43:14
@Romain Hippeau修改阵列列表虽然相当昂贵。 – biziclop 2011-03-24 23:57:30