📅  最后修改于: 2023-12-03 15:02:07.108000             🧑  作者: Mango
Java中提供了一个队列接口(Queue),它是一种特殊的线性表,只能从一端进行插入(Enqueue)操作,从另一端进行删除(Dequeue)操作,而且先进去的元素会先出来(FIFO),就像排队一样。
Queue接口是Java提供的一个队列接口,它继承自Collection接口。Queue接口提供了一些方法用于管理队列,包括添加元素、删除元素、获取队首元素等操作。
boolean add(E e)
:将指定的元素插入到队列中,如果队列已满,则会抛出异常。boolean offer(E e)
:将指定的元素插入到队列中,如果队列已满,则返回false。E remove()
:删除队列中的第一个元素,如果队列为空,则会抛出异常。E poll()
:删除队列中的第一个元素,如果队列为空,则返回null。E element()
:获取队列中的第一个元素,并将其从队列中删除,如果队列为空,则会抛出异常。E peek()
:获取队列中的第一个元素,但是不将其从队列中删除,如果队列为空,则返回null。Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
queue.offer(3);
System.out.println(queue.peek()); // 输出1
System.out.println(queue.poll()); // 输出1
System.out.println(queue.poll()); // 输出2
System.out.println(queue.peek()); // 输出3
Deque(Double Ended Queue)接口是Java提供的一个双端队列接口,它继承了Queue接口和Deque接口,除了支持Queue的所有操作外,还可以在队列的两端插入和删除元素。
void addFirst(E e)
:将指定的元素插入到队列的头部。void addLast(E e)
:将指定的元素插入到队列的尾部。boolean offerFirst(E e)
:将指定的元素插入到队列的头部,如果队列已满,则返回false。boolean offerLast(E e)
:将指定的元素插入到队列的尾部,如果队列已满,则返回false。E removeFirst()
:从队列的头部删除第一个元素,如果队列为空,则会抛出异常。E removeLast()
:从队列的尾部删除第一个元素,如果队列为空,则会抛出异常。E pollFirst()
:从队列的头部删除第一个元素,如果队列为空,则返回null。E pollLast()
:从队列的尾部删除第一个元素,如果队列为空,则返回null。E getFirst()
:获取队列的第一个元素,如果队列为空,则会抛出异常。E getLast()
:获取队列的最后一个元素,如果队列为空,则会抛出异常。E peekFirst()
:获取队列的第一个元素,如果队列为空,则返回null。E peekLast()
:获取队列的最后一个元素,如果队列为空,则返回null。Deque<Integer> deque = new LinkedList<>();
deque.offerLast(1);
deque.offerLast(2);
deque.offerFirst(3);
System.out.println(deque.peekFirst()); // 输出3
System.out.println(deque.peekLast()); // 输出2
System.out.println(deque.pollFirst()); // 输出3
System.out.println(deque.pollLast()); // 输出2
System.out.println(deque.peekFirst()); // 输出1
Java队列接口能够帮助开发者更方便地实现队列数据结构,Queue和Deque接口提供了一系列方法用于对队列进行操作,开发者可以根据自己的需求选择合适的接口来使用。