【发布时间】:2011-02-07 23:20:25
【问题描述】:
在使用 Java LinkedList 时如何找出元素的下一个或上一个关系?
我的意思是,在常规链表中,我会这样做:
Node node1 = new Node();
Node node2 = new Node();
LinkedList list = new LinkedList();
list.add(node1);
list.add(node2);
//then my node1 will know who it's next is:
assertEquals(node2, node1.next());
Node 是我自己的数据/对象容器。
但是在Java的LinkedList中,数据好像没有被修改过。那么我如何真正找出“下一个”(或在双向链表的情况下为“上一个”)元素是谁?
【问题讨论】:
-
如果我去
list.add(node1); list.add(node1);会发生什么? -
对于了解“链表”的人来说,Java 的 LinkedList 有点误导人。它不是 Java 中唯一具有误导性或至少命名不佳的东西(“并发修改异常”也浮现在脑海中)。但是当然你可以期待来自 Java-kool'aid 饮酒者的 cmets,他们相信 Java 之神创造的一切都是完美的,可以解释为什么 LinkedList 真的是一个 comp-sci 链表以及为什么我很愚蠢;)
-
Java中有很多不好的和可怕的东西,但是LinkedList和CME都很好。除非您想将其命名为 ListImplementedAsDoubleLinkedList 和 YouOrSomebodyElseHadModifiedYourCollectionInTheMeantime,否则我不知道如何命名。也就是说,我同意一个更好的名字会很好,我就是找不到。
标签: java