在使用的队列的时,发现提供了两组功能相似的方法,一组是包含add,remove,element,另一组包含offer,poll,peek
add和offer
两者都是添加功能,在队列为自动扩容的情况下,两者可以说没有什么区别,都是添加值到队列中。
但是如果是在有限队列环境下,add在队列满时添加,会抛出IllegalStateException异常,导致程序报错。而offer在遇到队列满时,会返回false,不会导致程序停止
remove和poll
两者都是队首元素出队操作,poll() 在队列为空时,会返回null,程序继续,不会停止。而remove 在队列为空时,会抛出NoSuchElementException异常,导致程序停止。
element和peek
两者都是展示队首元素,element在队列为空时,会抛出异常NoSuchElementException异常,而peek在遇到队列为空时,会返回null
总结
add,remove,element 会在遇到界限问题时抛出相应的异常
offer,poll,peek在遇到界限问题时会返回false或null