logo

Java Deque интерфейс

Интерфейсът, наречен Deque, присъства в пакета java.util. Това е подтип на интерфейсната опашка. Deque поддържа добавянето, както и премахването на елементи от двата края на структурата от данни. Следователно, deque може да се използва като стек или опашка. Знаем, че стекът поддържа операцията Last In First Out (LIFO), а операцията First In First Out се поддържа от опашка. Тъй като deque поддържа и двете, всяка от споменатите операции може да бъде извършена върху него. Deque е акроним за 'опашка с двоен край'.

Декларация на интерфейс Deque

 public interface Deque extends Queue 

Методи на Java Deque интерфейс

Метод Описание
булево добавяне (обект) Използва се за вмъкване на посочения елемент в тази двойна последователност и връщане на true при успех.
булева оферта (обект) Използва се за вмъкване на посочения елемент в тази двойна последователност.
Премахване на обект() Използва се за извличане и премахване на главата на тази двойка.
Обектна анкета() Използва се за извличане и премахване на главата на тази двойка или връща нула, ако тази двойка е празна.
Обектен елемент() Използва се за извличане, но не премахване на главата на тази двойка.
Object peek() Използва се за извличане, но не премахва, главата на тази двойна последователност или връща нула, ако тази двойна последователност е празна.
Обект peekFirst() Методът връща главния елемент на deque. Методът не премахва нито един елемент от deque. Null се връща от този метод, когато втората последователност е празна.
Обект peekLast() Методът връща последния елемент от deque. Методът не премахва нито един елемент от deque. Null се връща от този метод, когато втората последователност е празна.
Булева офертаFirst(e) Вмъква елемента e в началото на опашката. Ако вмъкването е успешно, се връща true; в противен случай невярно.
Обект оферта Последна(е) Вмъква елемента e в опашката на опашката. Ако вмъкването е успешно, се връща true; в противен случай невярно.
йерархия на java arraydeque

Клас ArrayDeque

Знаем, че не е възможно да се създаде обект на интерфейс в Java. Следователно, за инстанциране се нуждаем от клас, който имплементира интерфейса Deque и този клас е ArrayDeque. Той расте и се свива според употребата. Той също така наследява класа AbstractCollection.

Важните точки за класа ArrayDeque са:

  • За разлика от Queue, можем да добавяме или премахваме елементи от двете страни.
  • Нулеви елементи не са разрешени в ArrayDeque.
  • ArrayDeque не е безопасен за нишки при липса на външна синхронизация.
  • ArrayDeque няма ограничения за капацитет.
  • ArrayDeque е по-бърз от LinkedList и Stack.

Йерархия ArrayDeque

Йерархията на класа ArrayDeque е дадена на фигурата, показана в дясната страна на страницата.

какво е обект java

Декларация на клас 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