LinkedList为同一个函数提供了几种方法 - 为什么?

时间:2015-12-01 07:26:15

标签: java collections linked-list

我正在检查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

或其他一些基本原理?

请在这里分享一些见解。感谢

2 个答案:

答案 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