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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

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

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

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

引发异常+删除操作: pop()remove()removeFirst()

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

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

如果没有这样的差异,我会期望在方法的javadoc中提到它(类似于老的“这完全像调用...”)。这只是一个马虎的文档,或者我错过了什么?

提问于
用户回答回答于

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

LinkedList实现两个接口 - QueueDeque。并Deque延伸自Queue

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

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

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

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

还有一个表格列出了Queue类和Deque方法的等价方法。见Deque#poll()Deque#peek()对于如他们清楚地列出了等效的方法。

用户回答回答于

你的权利这是不好的文件或什么的。

peek()检索但不移除此列表的头(第一个元素)。

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

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

扫码关注云+社区