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?








