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



我检查了Java.util.LinkedList类,发现Linked List类提供了几种方法

public void addFirst(E e) 
public boolean offerFirst(E e)
public void push(E e)

所有这3种方法都将一个元素添加到列表的开头。那么,为什么不同的实现需要相同的功能呢?

是因为推送适用于Stack和

offerFirst–退出

addFirst–LinkedList

或者其他一些基本原理?

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

由于Deque接口的约定,这些都在LinkedList中实现。

Deque的javadocs清楚地解释了区别:

void addFirst(E E)

如果可以在不违反容量限制的情况下立即插入指定的元素,请在此deque的前面插入该元素当使用容量受限的deque时,通常最好使用offerFirst(E)方法

布尔offerFirst(E E)

在该deque的前面插入指定的元素,除非它会违反容量限制。当使用容量受限的deque时,此方法通常比addFirst(E)方法更可取,后者只能通过抛出异常才能插入元素

ArrayBlockingQueue类(javadocs)是实现Deque的有界队列实现的一个示例。

看一下java文档。。

public void addFirst(E e) 
// Inserts the specified element at the beginning of this list.
public boolean offerFirst(E e)
// Inserts the specified element at the front of this list.
public void push(E e)
// Pushes an element onto the stack represented by this list.

有关更多信息:LinkedList

相关内容

  • 没有找到相关文章

最新更新