Queue接口
- 队列,先进先出,只能在队尾添加元素,队头输出元素。
- 继承了Collection接口。
- 内置了六种方法
入队
add()
boolean add(E e);
//将元素进行入队操作,如果成功的话,返回true;失败的话抛出IllegalStateException异常,因此不推荐使用。
offer()
boolean offer(E e);
//添加成功,返回true,失败返回false,不抛出异常。
出队
remove()
E remove();
//出队成功返回队头元素,失败的话抛出异常,因此不推荐使用
poll()
E poll();
出队成功返回队头元素,失败的话输出null
返回队头元素但不出队
element()
E element();
//队不为空,返回队头元素;队为空,抛出异常,不推荐
peek()
E peek();
//队不为空,返回队头元素;队为空,抛出异常,不推荐
Deque
-
由于Queue只能实现的是,队尾添加元素,队头输出元素。为了实现队列的两端都可以添加、删除元素,因此推出了Deque。
- Deque接口继承了Queue接口,所以Queue拥有的6个方法,Deque也是存在的。
public interface Deque<E> extends Queue<E>
-
void addFirst(E e);//在队头添加元素,添加失败,抛出IllegalStateException,不推荐使用 boolean offerFirst(E e);//在队头添加元素,成功返回true,失败返回false
-
void addLast(E e);//在队末尾添加元素,添加失败,抛出IllegalStateException,不推荐使用 boolean offerLast(E e);//在队末尾添加元素,成功返回true,失败返回false
-
E removeFirst();//返回并移除队头元素,如果队列为空,那么抛出异常,不推荐使用 E pollFirst();//返回并移除队头元素,如果队列为空,那么返回null
-
E removeLast();//返回并移除队末尾元素,如果队列为空,那么抛出异常,不推荐使用 E pollLast();//返回并移除队末尾元素,如果队列为空,那么返回null
-
E getFirst();//返回但是不移除队头元素,如果队列为空,那么抛出异常 E peekFirst();//返回但是不移除队头元素,如果队列为空,那么返回null
-
E getLast();//返回但是不移除队末尾元素,如果队列为空,那么抛出异常 E peekLast();//返回但是不移除队末尾元素,如果队列为空,那么返回null
-
boolean removeFirstOccurrence(Object o); boolean remove(Object o)//如果队列中存在对象o,那么移除第一次出现的对象,返回true;反之,返回false boolean removeLastOccurrence(Object o);//如果队列中存在对象o,那么移除最后一次出现的对象,返回true;反之,返回false
-
void push();//该方法是栈的入栈方法,相当于在在队头插入元素,插入失败抛出异常,和void addFirst(E e)是一样的
-
E pop();//弹出队头元素,如果队列为空,那么抛出异常,和E removeFirst();效果一样
-
boolean contains(Object o);//如果队列存在至少一个对象o,那么返回true;反之,返回else。 int size();//返回队列的大小 Iterator<E> iteror();//返回一个迭代器对象,包含的数据从队头到队尾。 Iterator<E> descendingIterator();//返回一个迭代器对象,数据的顺序是从队尾到队头。