logo

Інтерфейс Java Deque

Інтерфейс під назвою 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.
ієрархія java arraydeque

Клас 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