Java LinkedList - 检索操作之间的差异

时间:2013-02-13 10:27:00

标签: java linked-list duplicates javadoc

LinkedList中的以下每组元素检索操作中的不同方法之间是否存在差异?

返回null +删除操作: poll()pollFirst()

返回null +不删除操作: peek()peekFirst()

投掷异常+删除操作: pop()remove()removeFirst()

抛出异常+不删除操作: element()getFirst()

插入方法中存在类似的重复。

如果没有这样的差异,我希望在方法的javadoc中提到它(类似于旧的“这就像调用......”)。它只是一个草率的文件,还是我错过了什么?

3 个答案:

答案 0 :(得分:13)

它们之间没有区别,它也列在文档中,但你必须进行一些递归搜索才能到达那里。

LinkedList实现了两个接口 - QueueDequeDequeQueue延伸。

现在,Deque已定义方法 - Deque#pollFirst()并继承了方法 - Queue#poll()

因此,LinkedList基本上为它实现的两个接口定义了这两个方法。

关于这两种方法之间的相似性,它在Deque的文档中列为:

  

此接口扩展了Queue接口。当deque用作a   队列,FIFO(先进先出)行为结果。元素被添加   在双端队列结束时从头开始删除。方法   从Queue接口继承的正好等同于Deque   方法如下表所示:

还有一个表格列出了Queue类的方法和等效的Deque方法。有关例如,请参阅Deque#poll()Deque#peek()他们清楚地列出了等效方法。

答案 1 :(得分:0)

它们之间的区别在于它们发布的版本以及LinkedList实现的接口。

基于poll()pollFirst()的示例:

LinkedList Java 1.2 一起发布。

自1.5 LinkedList实现了具有

的Queue接口
public E poll() 

自1.6 LinkedList实现了具有

的Deque接口
public E pollFirst()

编辑: 由于向后兼容性而保持较旧的实现非常重要。

答案 2 :(得分:0)

你的权利是不好的文件或其他东西。

PEEK() 检索但不删除此列表的头部(第一个元素)。

peekFirst() 检索但不删除此列表的第一个元素,如果此列表为空,则返回null。

这就是它所说的,我在Java书中读到,头部是列表中的第一项。