Інтерфейс під назвою Deque присутній у пакеті java.util. Це підтип черги інтерфейсу. Deque підтримує додавання, а також видалення елементів з обох кінців структури даних. Таким чином, deque можна використовувати як стек або чергу. Ми знаємо, що стек підтримує операцію «Останній прийшов, перший вийшов» (LIFO), а операція «Першим прийшов, першим вийшов» підтримується чергою. Оскільки deque підтримує обидва, над ним можна виконувати будь-яку зі згаданих операцій. Deque - це абревіатура від 'двостороння черга'.
Декларація інтерфейсу Deque
public interface Deque extends Queue
Методи інтерфейсу Java Deque
метод | опис |
---|---|
логічне додавання (об'єкт) | Він використовується, щоб вставити вказаний елемент у цю двочергу та повернути true у разі успіху. |
логічна пропозиція (об'єкт) | Він використовується, щоб вставити вказаний елемент у цю двійкову чергу. |
Об'єкт видалити() | Він використовується для отримання та видалення голови цієї деки. |
Опитування об'єктів() | Він використовується для отримання та видалення голови цієї двочерги або повертає null, якщо ця двочерга порожня. |
Елемент об'єкта() | Він використовується для отримання, але не видалення голови цієї деки. |
Об'єкт peek() | Він використовується для отримання, але не видаляє голову цієї двійкової черги або повертає значення null, якщо ця двочерга порожня. |
Об'єкт peekFirst() | Метод повертає головний елемент deque. Цей метод не видаляє жодного елемента з deque. Цей метод повертає Null, коли двочерга порожня. |
Об'єкт peekLast() | Метод повертає останній елемент двоканального ряду. Цей метод не видаляє жодного елемента з deque. Цей метод повертає Null, коли двочерга порожня. |
Логічне значення offerFirst(e) | Вставляє елемент e на початку черги. Якщо вставка успішна, повертається true; в іншому випадку false. |
Об'єкт offerLast(e) | Вставляє елемент e у хвіст черги. Якщо вставка успішна, повертається true; в іншому випадку false. |
Клас ArrayDeque
Ми знаємо, що в Java неможливо створити об’єкт інтерфейсу. Тому для створення екземпляра нам потрібен клас, який реалізує інтерфейс Deque, і цим класом є ArrayDeque. Він росте і зменшується відповідно до використання. Він також успадковує клас AbstractCollection.
Важливі моменти про клас ArrayDeque:
- На відміну від черги, ми можемо додавати або видаляти елементи з обох сторін.
- Нульові елементи не допускаються в ArrayDeque.
- ArrayDeque не є потокобезпечним за відсутності зовнішньої синхронізації.
- ArrayDeque не має обмежень по місткості.
- ArrayDeque швидший за LinkedList і Stack.
Ієрархія ArrayDeque
Ієрархія класу ArrayDeque наведена на малюнку в правій частині сторінки.
життєвий цикл sdlc
Оголошення класу ArrayDeque
Давайте подивимося оголошення для класу java.util.ArrayDeque.
public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable
Приклад Java ArrayDeque
Ім'я файлу: ArrayDequeExample.java
import java.util.*; public class ArrayDequeExample { public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Ravi'); deque.add('Vijay'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } }
Вихід:
Ravi Vijay Ajay
Приклад Java ArrayDeque: offerFirst() і pollLast()
Ім'я файлу: DequeExample.java
import java.util.*; public class DequeExample { public static void main(String[] args) { Deque deque=new ArrayDeque(); deque.offer('arvind'); deque.offer('vimal'); deque.add('mukul'); deque.offerFirst('jai'); System.out.println('After offerFirst Traversal...'); for(String s:deque){ System.out.println(s); } //deque.poll(); //deque.pollFirst();//it is same as poll() deque.pollLast(); System.out.println('After pollLast() Traversal...'); for(String s:deque){ System.out.println(s); } } }
Вихід:
After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal
Приклад Java ArrayDeque: книга
Ім'я файлу: ArrayDequeExample.java
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class ArrayDequeExample { public static void main(String[] args) { Deque set=new ArrayDeque(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to Deque set.add(b1); set.add(b2); set.add(b3); //Traversing ArrayDeque for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Вихід:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6