logo

Interface Java Deque

A interface chamada Deque está presente no pacote java.util. É o subtipo da fila de interface. O Deque suporta a adição e também a remoção de elementos de ambas as extremidades da estrutura de dados. Portanto, um deque pode ser usado como pilha ou fila. Sabemos que a pilha suporta a operação Last In First Out (LIFO), e a operação First In First Out é suportada por uma fila. Como um deque suporta ambos, qualquer uma das operações mencionadas pode ser executada nele. Deque é um acrônimo para 'fila dupla terminada'.

Declaração de interface Deque

 public interface Deque extends Queue 

Métodos de interface Java Deque

Método Descrição
adição booleana (objeto) É usado para inserir o elemento especificado neste deque e retornar verdadeiro em caso de sucesso.
oferta booleana (objeto) É usado para inserir o elemento especificado neste deque.
Remover objeto() É usado para recuperar e remover a cabeça deste deque.
Pesquisa de objeto() É usado para recuperar e remover o cabeçalho deste deque ou retorna nulo se este deque estiver vazio.
Elemento objeto() É usado para recuperar, mas não remove, a cabeça deste deque.
Espiar objeto() É usado para recuperar, mas não remove, o cabeçalho deste deque ou retorna nulo se este deque estiver vazio.
Espiar primeiro objeto() O método retorna o elemento head do deque. O método não remove nenhum elemento do deque. Nulo é retornado por este método, quando o deque está vazio.
Espiar objetoLast() O método retorna o último elemento do deque. O método não remove nenhum elemento do deque. Nulo é retornado por este método, quando o deque está vazio.
Oferta booleanaPrimeiro(e) Insere o elemento e no início da fila. Se a inserção for bem-sucedida, true será retornado; caso contrário, falso.
Oferta de objetoÚltimo(e) Insere o elemento e no final da fila. Se a inserção for bem-sucedida, true será retornado; caso contrário, falso.
hierarquia java arraydeque

Classe ArrayDeque

Sabemos que não é possível criar um objeto de interface em Java. Portanto, para instanciação, precisamos de uma classe que implemente a interface Deque, e essa classe é ArrayDeque. Ele cresce e diminui conforme o uso. Ele também herda a classe AbstractCollection.

Os pontos importantes sobre a classe ArrayDeque são:

  • Ao contrário do Queue, podemos adicionar ou remover elementos de ambos os lados.
  • Elementos nulos não são permitidos no ArrayDeque.
  • ArrayDeque não é thread-safe, na ausência de sincronização externa.
  • ArrayDeque não tem restrições de capacidade.
  • ArrayDeque é mais rápido que LinkedList e Stack.

Hierarquia ArrayDeque

A hierarquia da classe ArrayDeque é dada na figura exibida no lado direito da página.

25 c a k

Declaração de classe ArrayDeque

Vamos ver a declaração da classe java.util.ArrayDeque.

 public class ArrayDeque extends AbstractCollection implements Deque, Cloneable, Serializable 

Exemplo Java ArrayDeque

Nome do arquivo: 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); } } } 

Saída:

Ravi Vijay Ajay 

Exemplo Java ArrayDeque: offerFirst() e pollLast()

Nome do arquivo: 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); } } } 

Saída:

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

Exemplo Java ArrayDeque: Livro

Nome do arquivo: 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); } } } 

Saída:

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