Java Stack Class

Neste tutorial, aprenderemos sobre a classe Java Stack e seus métodos com a ajuda de exemplos.

A estrutura de coleções Java tem uma classe chamada Stackque fornece a funcionalidade da estrutura de dados da pilha.

A Stackclasse estende a Vectorclasse.

Implementação de pilha

Na pilha, os elementos são armazenados e acessados ​​da maneira Last In First Out . Ou seja, os elementos são adicionados ao topo da pilha e removidos do topo da pilha.

Criação de uma pilha

Para criar uma pilha, devemos java.util.Stackprimeiro importar o pacote. Depois de importar o pacote, aqui está como podemos criar uma pilha em Java.

 Stack stacks = new Stack(); 

Aqui, Typeindica o tipo da pilha. Por exemplo,

 // Create Integer type stack Stack stacks = new Stack(); // Create String type stack Stack stacks = new Stack(); 

Métodos de pilha

Como Stackestende a Vectorclasse, ele herda todos os métodos Vector. Para aprender sobre diferentes Vectormétodos, visite Java Vector Class.

Além desses métodos, a Stackclasse inclui mais 5 métodos que a distinguem de Vector.

Método push ()

Para adicionar um elemento ao topo da pilha, usamos o push()método. Por exemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); ) ) 

Resultado

 Pilha: (cachorro, cavalo, gato) 

Método pop ()

Para remover um elemento do topo da pilha, usamos o pop()método. Por exemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initial Stack: " + animals); // Remove element stacks String element = animals.pop(); System.out.println("Removed Element: " + element); ) ) 

Resultado

 Pilha inicial: (cão, cavalo, gato) Elemento removido: gato 

Método peek ()

O peek()método retorna um objeto do topo da pilha. Por exemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Access element from the top String element = animals.peek(); System.out.println("Element at top: " + element); ) ) 

Resultado

 Pilha: (Cachorro, Cavalo, Gato) Elemento no topo: Gato 

método search ()

Para pesquisar um elemento na pilha, usamos o search()método. Ele retorna a posição do elemento do topo da pilha. Por exemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Search an element int position = animals.search("Horse"); System.out.println("Position of Horse: " + position); ) ) 

Resultado

 Pilha: (Cão, Cavalo, Gato) Posição do Cavalo: 2 

Método empty ()

Para verificar se uma pilha está vazia ou não, usamos o empty()método. Por exemplo,

 import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Check if stack is empty boolean result = animals.empty(); System.out.println("Is the stack empty? " + result); ) ) 

Resultado

Pilha: (Cachorro, Cavalo, Gato) A pilha está vazia? falso

Use ArrayDeque em vez de Stack

A Stackclasse fornece a implementação direta da estrutura de dados da pilha. No entanto, é recomendável não usá-lo. Em vez disso, use a ArrayDequeclasse (implementa a Dequeinterface) para implementar a estrutura de dados da pilha em Java.

Para saber mais, visite:

  • Java ArrayDeque
  • Por que usar Deque em vez de Stack?

Artigos interessantes...