在LinkedList
中,以下每组元素检索操作中的不同方法之间是否存在差异
返回null +删除操作: poll()
,pollFirst()
。
返回null +未移除操作: peek()
,peekFirst()
。
抛出异常+移除操作: pop()
,remove()
,removeFirst()
。
抛出异常+未移除操作: element()
,getFirst()
。
类似的重复存在于插入方法中。
如果没有这样的区别,我希望它会在方法的javadoc中提到(就像老话“这就像是在调用...”一样)。这只是一个草率的文档,还是我遗漏了什么?
发布于 2013-02-13 18:38:16
它们之间没有区别,文档中也列出了这一点,但您必须进行一些递归搜索才能到达那里。
LinkedList
实现了两个接口-- Queue
和Deque
。Deque
是从Queue
扩展而来的。
现在,Deque
已经定义了方法- Deque#pollFirst()
并继承了方法- Queue#poll()
。
因此,LinkedList
基本上为它实现的两个接口定义了这两个方法。
关于这两种方法之间的相似性,在Deque
的文档中列出如下:
此接口扩展了Queue接口。将双队列用作队列时,会产生FIFO (先进先出)行为。元素被添加到双队列的末尾,并从开头删除。从Queue接口继承的方法完全等同于Deque方法,如下表所示:
并且有一个表列出了Queue
类的方法和等效的Deque
方法。参见Deque#poll()
,Deque#peek()
,例如,他们清楚地列出了等价的方法。
发布于 2014-05-23 09:18:19
你说的对,这是错误的文档或者别的什么。
peek()检索这个列表的头部(第一个元素),但不删除。
peekFirst()检索但不删除该列表的第一个元素,如果该列表为空,则返回null。
这就是它所说的,我在我的Java书中读到,head是列表中的第一个项目。
https://stackoverflow.com/questions/14851367
复制相似问题