Интерфейс очереди Java
Интерфейс очереди Java
В этом руководстве мы узнаем об интерфейсе Java Queue и его методах.
Queue
интерфейс фреймворка коллекций Java обеспечивает функциональность структуры данных очереди. Он расширяет Collection
интерфейс.
Классы, реализующие очередь
Поскольку Queue
является интерфейсом, мы не можем предоставить его прямую реализацию.
Чтобы использовать функциональные возможности Queue
, нам нужно использовать классы, которые его реализуют:
- ArrayDeque
- Связанный список
- Приоритетная очередь
Интерфейсы, расширяющие Queue
Queue
Интерфейс также расширен различными субинтерфейсами:
Deque
BlockingQueue
BlockingDeque
Работа со структурой данных очереди
В очередях элементы хранятся и доступны по принципу First In, First Out. способ. То есть элементы добавляются сзади и удалены с переднего плана .
Как использовать очередь?
В Java мы должны импортировать java.util.Queue
package для использования Queue
.
// LinkedList implementation of Queue
Queue<String> animal1 = new LinkedList<>();
// Array implementation of Queue
Queue<String> animal2 = new ArrayDeque<>();
// Priority Queue implementation of Queue
Queue<String> animal 3 = new PriorityQueue<>();
Здесь мы создали объекты animal1 , животное2 и животное3 классов LinkedList
, ArrayDeque
и PriorityQueue
соответственно. Эти объекты могут использовать функциональные возможности Queue
интерфейс.
Методы очереди
Queue
интерфейс включает все методы Collection
интерфейс. Это потому, что Collection
это суперинтерфейс Queue
.
Некоторые из часто используемых методов Queue
интерфейс:
- добавить() - Вставляет указанный элемент в очередь. Если задача выполнена успешно,
add()
возвращаетtrue
, в противном случае выдается исключение. - предложение() - Вставляет указанный элемент в очередь. Если задача выполнена успешно,
offer()
возвращаетtrue
, если нет, возвращаетfalse
. - элемент() - Возвращает голову очереди. Выдает исключение, если очередь пуста.
- заглянуть() - Возвращает голову очереди. Возвращает
null
если очередь пуста. - удалить() - Возвращает и удаляет голову очереди. Выдает исключение, если очередь пуста.
- опрос() - Возвращает и удаляет голову очереди. Возвращает
null
если очередь пуста.
Реализация интерфейса очереди
<сильный>1. Реализация класса LinkedList
import java.util.Queue;
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
// Creating Queue using the LinkedList class
Queue<Integer> numbers = new LinkedList<>();
// offer elements to the Queue
numbers.offer(1);
numbers.offer(2);
numbers.offer(3);
System.out.println("Queue: " + numbers);
// Access elements of the Queue
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// Remove elements from the Queue
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
Вывод
Queue: [1, 2, 3] Accessed Element: 1 Removed Element: 1 Updated Queue: [2, 3]
Чтобы узнать больше, посетите Java LinkedList.
<сильный>2. Реализация класса PriorityQueue
import java.util.Queue;
import java.util.PriorityQueue;
class Main {
public static void main(String[] args) {
// Creating Queue using the PriorityQueue class
Queue<Integer> numbers = new PriorityQueue<>();
// offer elements to the Queue
numbers.offer(5);
numbers.offer(1);
numbers.offer(2);
System.out.println("Queue: " + numbers);
// Access elements of the Queue
int accessedNumber = numbers.peek();
System.out.println("Accessed Element: " + accessedNumber);
// Remove elements from the Queue
int removedNumber = numbers.poll();
System.out.println("Removed Element: " + removedNumber);
System.out.println("Updated Queue: " + numbers);
}
}
Вывод
Queue: [1, 5, 2] Accessed Element: 1 Removed Element: 1 Updated Queue: [2, 5]
Чтобы узнать больше, посетите страницу Java PriorityQueue.
<час> В следующих уроках мы узнаем о различных субинтерфейсах Queue
. интерфейс и его реализация в деталях.
java