首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java LinkedList -检索操作之间的区别

Java LinkedList -检索操作之间的区别
EN

Stack Overflow用户
提问于 2013-02-13 18:27:00
回答 2查看 13.4K关注 0票数 19

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

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

返回null +未移除操作: peek()peekFirst()

抛出异常+移除操作: pop()remove()removeFirst()

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

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

如果没有这样的区别,我希望它会在方法的javadoc中提到(就像老话“这就像是在调用...”一样)。这只是一个草率的文档,还是我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-13 18:38:16

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

LinkedList实现了两个接口-- QueueDequeDeque是从Queue扩展而来的。

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

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

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

此接口扩展了Queue接口。将双队列用作队列时,会产生FIFO (先进先出)行为。元素被添加到双队列的末尾,并从开头删除。从Queue接口继承的方法完全等同于Deque方法,如下表所示:

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

票数 15
EN

Stack Overflow用户

发布于 2014-05-23 09:18:19

你说的对,这是错误的文档或者别的什么。

peek()检索这个列表的头部(第一个元素),但不删除。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14851367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档