English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender a classe Stack do Java e seus métodos com exemplos.
O framework de coleções Java possui uma classe chamada Stack, que fornece funcionalidades de estrutura de dados de pilha.
A classe Stack desta inheritancea da classe Vector.
Dentro da pilha, os elementos sãoúltimo a entrar, primeiro a sairmaneira de armazenar e acessar. Isso significa que os elementos são adicionados ao topo da pilha e removidos do topo da pilha.
Para criar uma pilha, devemos primeiro importar o pacote java.util.Stack. Após a importação do pacote, podemos usar Java para criar uma pilha.
Stack<Type> stacks = new Stack<>();
Aqui, Type indica o tipo da pilha. Por exemplo,
//Criar pilha de tipo inteiro Stack<Integer> stacks = new Stack<>(); //Criar pilha de tipo String Stack<String> stacks = new Stack<>();
Como a pilha herda a classe Vector, ela herda todos os métodos do Vector. Para entender diferentes métodos do Vector, acesseClasse Vector do Java.
Além desses métodos, a classe Stack inclui5Métodos que diferenciam-se do Vector.
Para adicionar elementos ao topo da pilha, usamos o método push(). Por exemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Adicionar elementos à pilha animals.push("Cão"); animals.push("Cavalo"); animals.push("Gato"); System.out.println("Stack: ", + animals); } }
Saída
Stack: [Cão, Cavalo, Gato]
Para remover elementos do topo da pilha, usamos o método pop(). Por exemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Adicionar elemento ao Stack animals.push("Cão"); animals.push("Cavalo"); animals.push("Gato"); System.out.println("Pilha inicial: "); + animals); //Remoção de elemento da pilha, princípio de último a entrar, primeiro a sair String element = animals.pop(); System.out.println("Remoção de elemento: "); + element); } }
Saída
Pilha inicial: [Dog, Horse, Cat] Remoção de elemento: Cat
O método peek() retorna um objeto do topo da pilha. Por exemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Adicionar elementos à pilha animals.push("Cão"); animals.push("Cavalo"); animals.push("Gato"); System.out.println("Stack: ", + animals); //Acesso ao elemento do topo, princípio de último a entrar, primeiro a sair String element = animals.peek(); System.out.println("Elemento no topo: "); + element); } }
Saída
Stack: [Cão, Cavalo, Gato] Elemento no topo: Cat
Para procurar elementos na pilha, usamos o método search(). Ele retorna a posição do elemento a partir do topo da pilha. Por exemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Adicionar elementos à pilha animals.push("Cão"); animals.push("Cavalo"); animals.push("Gato"); System.out.println("Stack: ", + animals); //Pesquisa de elemento int position = animals.search("Horse"); System.out.println("A posição do elemento Horse: "); + position); } }
Saída
Stack: [Cão, Cavalo, Gato] A posição do elemento Horse: 2
Para verificar se a pilha está vazia, usamos o método empty(). Por exemplo,
import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); //Adicionar elementos à pilha animals.push("Cão"); animals.push("Cavalo"); animals.push("Gato"); System.out.println("Stack: ", + animals); //Verificar se a pilha está vazia boolean result = animals.empty(); System.out.println("A pilha está vazia? ", + result); } }
Saída
Stack: [Cão, Cavalo, Gato] A pilha está vazia? false
Esta classe Stack fornece a estrutura de dados de pilha para execução direta. No entanto, é recomendável não usá-la. Em vez disso, use a classe ArrayDeque (que implementa a interface Deque) para implementar a estrutura de dados de pilha no Java.
Para obter mais informações, acesse:ArrayDeque Java