Интерфейсът, наречен 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; в противен случай невярно. |
Клас 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