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

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

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

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

抛出exception+删除操作: pop()remove()removeFirst()

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

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

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

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

LinkedList实现了两个接口 – QueueDequeDequeQueue延伸出来。

现在, Deque定义了方法 – Deque#pollFirst()并inheritance了方法 – Queue#poll()

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

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

此接口扩展了Queue接口。 当deque用作队列时,会产生FIFO(先进先出)行为。 元素在双端队列的末尾添加并从头开始删除。 从Queue接口inheritance的方法与Deque方法完全等效,如下表所示:

并且有一个表列出了Queue类的方法和等效的Deque方法。 参见Deque#poll()Deque#peek() ,例如,他们清楚地列出了等效方法。

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

peek()获取但不删除此列表的头部(第一个元素)。

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

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

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

基于poll()pollFirst()示例:

LinkedListJava 1.2一起发布。

由于1.5 LinkedList实现了Queue接口,因此具有

 public E poll() 

由于1.6 LinkedList实现了Deque接口,因此具有

 public E pollFirst() 

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