Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 队列方法的差异_Java_Methods_Data Structures_Queue_Fifo - Fatal编程技术网

Java 队列方法的差异

Java 队列方法的差异,java,methods,data-structures,queue,fifo,Java,Methods,Data Structures,Queue,Fifo,为什么队列有两种不同的方法,分别用于检索元素和删除元素 检索方法:元素和元素峰值 移除方法:元素轮询和元素移除 除了第一种情况下的返回类型差异之外,它们之间有什么区别?根据javadoc: Throws exception Returns special value Insert add(e) offer(e) Remove remove() poll() 这里的特殊值是指

为什么队列有两种不同的方法,分别用于检索元素和删除元素

检索方法:元素和元素峰值 移除方法:元素轮询和元素移除

除了第一种情况下的返回类型差异之外,它们之间有什么区别?

根据javadoc:

               Throws exception     Returns special value
Insert         add(e)               offer(e)
Remove         remove()             poll()
这里的特殊值是指:

返回: 如果元素已添加到此队列,则为true,否则为false


关键是队列可以有预定义的最大长度,如果您试图在队列为空时插入它,您可以使用add and get Exception或offer and get false returned或可能为空,并且您想要删除一个元素,您应该真正阅读JavaDoc以了解:

:

检索并删除此队列的头。此方法与轮询的不同之处在于,如果此队列为空,它将引发异常

:

检索但不删除此队列的头。此方法与peek的不同之处在于,如果此队列为空,它将引发异常

强调地雷。

RTFM: