Java 简明教程

Java - Queue Interface

Queue Interface

java.util package 中提供了 Queue 接口,它实现了 Collection interface。队列实现了 FIFO,即先进先出。这意味着首先输入的元素是首先删除的元素。队列通常用于在处理元素之前先保存这些元素。一旦元素被处理,它就会从队列中移除,然后选择下一个项目进行处理。

Queue Interface Declaration

public interface Queue<E>
   extends Collection<E>

Queue Interface Methods

以下是队列接口的所有实现类实现的重要队列方法的列表 −

Sr.No.

Method & Description

1

boolean add(E e) 如果没有违反容量限制,则此方法会将指定元素插入到此队列中,在插入成功时返回 true,并且在当前没有可用空间时引发 IllegalStateException。

2

E element() 此方法检索但不删除此队列的头部。

3

boolean offer(E e) 此方法向此队列中插入指定元素,如果立即进行此操作而不会违反容量限制,则可以进行此操作。

4

E peek() 此方法检索但不删除此队列的头部,如果此队列为空,则返回 null。

5

E poll() 此方法检索并删除此队列的头部,如果此队列为空,则返回 null。

6

E remove() 此方法检索并删除此队列的头部。

Methods Inherited

此接口继承下列接口中的方法-

  1. java.util.Collection

  2. java.lang.Iterable

Classes that Implement Queue

以下是实现队列以使用队列功能的类-

  1. LinkedList

  2. ArrayDeque

  3. PriorityQueue

classes that implement queue

Interfaces that Extend Queue

以下是扩展队列接口的接口-

  1. Deque

  2. BlockingQueue

  3. BlockingDeque

interfaces that extend queue

Example of Queue Interface

在此示例中,我们使用 LinkedList 实例来显示队列添加、窥视和大小操作。

package com.tutorialspoint;

import java.util.LinkedList;
import java.util.Queue;

public class QueueDemo {
   public static void main(String[] args) {
      Queue<Integer> q = new LinkedList<>();
      q.add(6);
      q.add(1);
      q.add(8);
      q.add(4);
      q.add(7);
      System.out.println("The queue is: " + q);
      int num1 = q.remove();
      System.out.println("The element deleted from the head is: " + num1);
      System.out.println("The queue after deletion is: " + q);
      int head = q.peek();
      System.out.println("The head of the queue is: " + head);
      int size = q.size();
      System.out.println("The size of the queue is: " + size);
   }
}

Output

The queue is: [6, 1, 8, 4, 7]
The element deleted from the head is: 6
The queue after deletion is: [1, 8, 4, 7]
The head of the queue is: 1
The size of the queue is: 4