📜  Java队列接口(1)

📅  最后修改于: 2023-12-03 15:02:07.108000             🧑  作者: Mango

Java队列接口

Java中提供了一个队列接口(Queue),它是一种特殊的线性表,只能从一端进行插入(Enqueue)操作,从另一端进行删除(Dequeue)操作,而且先进去的元素会先出来(FIFO),就像排队一样。

Queue接口

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接口

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接口提供了一系列方法用于对队列进行操作,开发者可以根据自己的需求选择合适的接口来使用。