我一直在寻找在java实现的LinkedList,并发现这一点:为什么java链表实现使用interface deque?
public class LinkedList<E>
extends AbstractSequentialList<E> implements List<E>,
Deque<E>, Cloneable, java.io.Serializable
为什么要在LinkedList支持双端队列接口? 我明白希望将元素添加到链表的末尾,但这些方法应该包含在List接口中。
只是因为你可以实现一个链表的队列? – 2011-05-05 10:25:25
并非所有的列表都是Deques,并非所有的Deques都是列表。 – 2011-05-05 10:33:06
我现在明白,仅仅因为其中一个实现恰好是一个链表,而链表可以轻松适应deque操作,所以无法更改列表接口。我可能会定义一个扩展列表接口和deque接口的链表列表接口。然后定义一个linkedlistImpl类。所以,我想“LinkedList实现恰好满足Deque契约,那么为什么不让它实现接口呢?” Qwerky的回应是适当的。谢谢。 – 2011-05-05 12:57:58