我正在检查Java.util.LinkedList
类,发现Linked List类提供了几种方法
public void addFirst(E e)
public boolean offerFirst(E e)
public void push(E e)
所有这3个方法都会在列表的头部添加一个元素。 那么为什么不同的实现需要相同的功能呢?
是因为 push适用于Stack和
offerFirst - 出队
addFirst - LinkedList
或其他一些基本原理?
请在这里分享一些见解。感谢
答案 0 :(得分:0)
由于LinkedList
接口的合同,这些是在Deque
中实现的。
Javadocs of Deque
清楚地解释了差异,
void addFirst(E e)
如果可以在不违反容量限制的情况下立即插入指定元素,则可以在此双端队列的前面插入。 使用容量限制的双端队列时,通常最好使用方法offerFirst(E)。
boolean offerFirst(E e)
在此双端队列的前面插入指定的元素,除非它违反容量限制。使用容量限制的双端队列时,此方法通常优于addFirst(E)方法,该方法只能通过抛出异常来插入元素。
答案 1 :(得分:0)
看一下java docs ..
public void addFirst(E e)
// Inserts the specified element at the beginning of this list.
public boolean offerFirst(E e)
// Adds the specified element as the tail (last element) of this list.
public void push(E e)
// Pushes an element onto the stack represented by this list.
更多信息:LinkedList