logo

Interfejs Java Deque

Interfejs o nazwie Deque znajduje się w pakiecie java.util. Jest to podtyp kolejki interfejsu. Deque obsługuje dodawanie i usuwanie elementów z obu końców struktury danych. Dlatego deque może służyć jako stos lub kolejka. Wiemy, że stos obsługuje operację LIFO, a operacja First In First Out jest obsługiwana przez kolejkę. Ponieważ deque obsługuje oba, można na nim wykonać dowolną z wymienionych operacji. Deque to skrót od „podwójna kolejka”.

Deklaracja interfejsu Deque

 public interface Deque extends Queue 

Metody interfejsu Java Deque

metoda Opis
wartość logiczna dodaj (obiekt) Służy do wstawienia określonego elementu do tej deque i zwrócenia wartości true w przypadku powodzenia.
oferta logiczna (obiekt) Służy do wstawienia określonego elementu do tego deque.
Usuń obiekt() Służy do odzyskiwania i usuwania głowy tej deque.
Sonda obiektu() Służy do pobierania i usuwania nagłówka tej deque lub zwraca wartość null, jeśli ta deque jest pusta.
Element obiektu() Służy do odzyskiwania, ale nie usuwania, głowy tego deque.
Podgląd obiektu() Służy do pobierania, ale nie usuwa nagłówka tej deque lub zwraca wartość null, jeśli ta deque jest pusta.
Podgląd obiektuFirst() Metoda zwraca element główny deque. Metoda nie usuwa żadnego elementu z deque. Ta metoda zwraca wartość Null, gdy deque jest pusta.
Podgląd obiektuOstatni() Metoda zwraca ostatni element deque. Metoda nie usuwa żadnego elementu z deque. Ta metoda zwraca wartość Null, gdy deque jest pusta.
Oferta logicznaPierwszy(e) Wstawia element e na początku kolejki. Jeśli wstawienie się powiedzie, zwracana jest wartość true; w przeciwnym razie fałsz.
Oferta obiektuOstatnie(e) Wstawia element e na końcu kolejki. Jeśli wstawienie się powiedzie, zwracana jest wartość true; w przeciwnym razie fałsz.
Hierarchia arraydeque Java

Klasa ArrayDeque

Wiemy, że w Javie nie da się stworzyć obiektu interfejsu. Dlatego do utworzenia instancji potrzebujemy klasy implementującej interfejs Deque, a tą klasą jest ArrayDeque. Rośnie i kurczy się w miarę użytkowania. Dziedziczy także klasę AbstractCollection.

Ważne punkty dotyczące klasy ArrayDeque to:

  • W przeciwieństwie do Queue, możemy dodawać lub usuwać elementy z obu stron.
  • Elementy null nie są dozwolone w ArrayDeque.
  • ArrayDeque nie jest bezpieczny dla wątków w przypadku braku zewnętrznej synchronizacji.
  • ArrayDeque nie ma ograniczeń pojemności.
  • ArrayDeque jest szybszy niż LinkedList i Stack.

Hierarchia ArrayDeque

Hierarchię klasy ArrayDeque przedstawiono na rysunku po prawej stronie.

nieuporządkowana_mapa c++

Deklaracja klasy ArrayDeque

Zobaczmy deklarację klasy java.util.ArrayDeque.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Przykład Java ArrayDeque

Nazwa pliku: TablicaDequeExample.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); } } } 

Wyjście:

Ravi Vijay Ajay 

Przykład Java ArrayDeque: OfferFirst() i pollLast()

Nazwa pliku: 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); } } } 

Wyjście:

After offerFirst Traversal... jai arvind vimal mukul After pollLast() Traversal... jai arvind vimal 

Przykład Java ArrayDeque: Książka

Nazwa pliku: TablicaDequeExample.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); } } } 

Wyjście:

101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6