在oracle Java文档中:https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html:
.element()
“检索但不删除此列表的头(第一个元素)。”
.peek()
“检索但不删除此列表的头(第一个元素)。”
.element()
而不是.peek()
? 答案 0 :(得分:4)
有4种方法。
偷看和元素的行为几乎相同,只是有所不同:
如果队列中不包含任何元素,则peek()方法将返回 null 。
element()方法的行为类似于peek(),因此它再次检索第一个元素的值而不删除它。
但是,如果列表为空,element()会抛出NoSuchElementException
。
最后,还有两种其他方法轮询和删除。
poll()方法通过从队列中删除第一个元素的值来检索它。如果列表不包含任何元素,则它将返回null,但不会引发任何异常。
remove()方法的行为与poll()方法相同,因此它将删除列表的第一个元素,如果列表为空,则会抛出NoSuchElementException。
答案 1 :(得分:3)
该行为在Queue的文档中进行了描述。基本上,如果有错误(元素为空列表),element会引发异常,而peek仅返回一个特殊值(可能为null)。 https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html