为什么Queue
有两种不同的方法用于检索元素和删除元素?
检索方法:element()
和Element peak()
正在删除方法:Element poll()
和Element remove()
它们之间有什么区别(第一种情况下的返回类型差异除外)?
答案 0 :(得分:2)
你应该真正阅读Queue的JavaDoc:
检索并删除此队列的头部。 此方法与轮询的区别仅在于,如果此队列为空,则会抛出异常。
检索但不删除此队列的头部。 此方法与 peek 的区别仅在于,如果此队列为空,则会抛出异常。
(强调我的。)
答案 1 :(得分:0)
根据javadoc:
Throws exception Returns special value
Insert add(e) offer(e)
Remove remove() poll()
这里的特殊值意味着:
返回: 如果元素已添加到此队列,则为true,否则为false
关键是队列可以有预定义的最大长度,如果你在空的时候尝试插入它,你可以使用add和get Exception或者offer并返回false(或者可能是空的,你想删除一个元素)