Queue列队
1、Queue是典型的先进先出容器,FIFO(first-in-first-out),通俗点说就,这个容器就像一个管道,从一端放入从另一端取出,放入的顺序和取出的顺序是相同的。下面是在百度上搜索的一张图,很形象:
2、Queue是一个接口类,继承至Collection接口,与List、Set同属于Collection的子类Interface
3、Queue除了继承了Collection的接口外,自身拥有以下个接口:
add :往列队中添加一个元索,如果队列已满,则抛出一个IIIegaISlabEepeplian异常
element:返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常
offer:添加一个元素,成功返回true,如果队列已满,则返回false
peek:返回队列头部的元素,如果队列为空,则返回null
poll:移除并返回队列头部的元素,如果队列为空,则返回null
remove:移除并返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException异常
3.1、个方法区别
offer & add区别
一些队列有大小限制,如果想在容量满了的队列中加入元素,会被拒绝。
offer()方法将一个元素插入队尾,成功返回true,失败返回false,一般在queue容量有限制并且满员的情况下会插入失败;
add()方法将一个元素插入队尾,queue容量如果满了,插入将会失败,失的时候会抛出异常;
peek & element区别
element() 和 peek() 都是在不移除元素的情况下返回列队头部元素。
在队列为空的情况下 peek() 返回 null,而element() 将抛出NoSuchElementException异常
poll & remove区别
remove() 和 poll() 方法都移除并返回队列头部元素(head)。