У цьому посібнику ми дізнаємося про інтерфейс Java Queue та його методи.
Queue
Інтерфейс рамок колекцій Java забезпечує функціональні структури даних черзі. Це розширює Collection
інтерфейс.
Класи, що реалізують чергу
Оскільки Queue
це інтерфейс, ми не можемо забезпечити його безпосередню реалізацію.
Для того, щоб використовувати функціональні можливості Queue
, нам потрібно використовувати класи, які його реалізують:
- ArrayDeque
- LinkedList
- PriorityQueue
Інтерфейси, що розширюють чергу
Queue
Інтерфейс також розширено різними субінтерфейсов:
Deque
BlockingQueue
BlockingDeque
Робота структури даних черги
В чергах елементи зберігаються та отримують доступ до них способом « Перший вхід, перший вихід» Тобто елементи додаються ззаду і знімаються спереду .
Як користуватися чергою?
У Java ми повинні імпортувати java.util.Queue
пакет, щоб використовувати Queue
.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Тут ми створили об'єкти animal1, animal2 і animal3 класів LinkedList
, ArrayDeque
і PriorityQueue
відповідно. Ці об'єкти можуть використовувати функціональні можливості Queue
інтерфейсу.
Методи черги
Queue
Інтерфейс включає в себе всі методи Collection
інтерфейсу. Це тому, що Collection
є супер інтерфейсом Queue
.
Деякі з найбільш часто використовуваних методів Queue
інтерфейсу:
- add () - Вставляє вказаний елемент у чергу. Якщо завдання успішне,
add()
повертаєтьсяtrue
, якщо ні, то видає виняток. - offer () - Вставляє вказаний елемент у чергу. Якщо завдання успішне,
offer()
повертаєтьсяtrue
, якщо ні - повертаєтьсяfalse
. - element () - Повертає заголовок черги. Видає виняток, якщо черга порожня.
- peek () - Повертає головку черги. Повертає,
null
якщо черга порожня. - remove () - Повертає та видаляє заголовок черги. Видає виняток, якщо черга порожня.
- poll () - повертає та видаляє заголовок черги. Повертає,
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 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); ) )
Вихідні дані
Черга: (1, 2, 3) Доступний елемент: 1 Вилучений елемент: 1 Оновлена черга: (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 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); ) )
Вихідні дані
Черга: (1, 5, 2) Доступний елемент: 1 Вилучений елемент: 1 Оновлена черга: (2, 5)
Щоб дізнатись більше, відвідайте Java PriorityQueue.
У наступних підручниках ми Queue
детально дізнаємося про різні субінтерфейси інтерфейсу та його реалізацію.