Java 简明教程
Java - Queue Interface
Queue Interface
java.util package 中提供了 Queue 接口,它实现了 Collection interface。队列实现了 FIFO,即先进先出。这意味着首先输入的元素是首先删除的元素。队列通常用于在处理元素之前先保存这些元素。一旦元素被处理,它就会从队列中移除,然后选择下一个项目进行处理。
The Queue interface is provided in java.util package and it implements the Collection interface. The queue implements FIFO i.e. First In First Out. This means that the elements entered first are the ones that are deleted first. A queue is generally used to hold elements before processing them. Once an element is processed then it is removed from the queue and next item is picked for processing.
Queue Interface Methods
以下是队列接口的所有实现类实现的重要队列方法的列表 −
Following is the list of the important queue methods that all the implementation classes of the Queue interface implement −
Sr.No. |
Method & Description |
1 |
boolean add(E e)This method inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning true upon success and throwing an IllegalStateException if no space is currently available. |
2 |
E element()This method retrieves, but does not remove, the head of this queue. |
3 |
boolean offer(E e)This method inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions. |
4 |
E peek()This method retrieves, but does not remove, the head of this queue, or returns null if this queue is empty. |
5 |
E poll()This method retrieves and removes the head of this queue, or returns null if this queue is empty. |
6 |
E remove()This method retrieves and removes the head of this queue. |
Methods Inherited
此接口继承下列接口中的方法-
This interface inherits methods from the following interfaces −
-
java.util.Collection
-
java.lang.Iterable
Classes that Implement Queue
以下是实现队列以使用队列功能的类-
The following are the classes that implement a Queue to use the functionalities of a Queue -
-
LinkedList
-
ArrayDeque
-
PriorityQueue
Interfaces that Extend Queue
以下是扩展队列接口的接口-
The following are the interfaces that extend the Queue interface -
-
Deque
-
BlockingQueue
-
BlockingDeque
Example of Queue Interface
在此示例中,我们使用 LinkedList 实例来显示队列添加、窥视和大小操作。
In this example, we’re using a LinkedList instance to show queue add, peek and size operations.
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);
}
}