Classe de pilha Java
Classe de pilha Java
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
Stack
que fornece a funcionalidade da estrutura de dados da pilha. O
Stack
classe estende o Vector
classe. Implementação de pilha
Na pilha, os elementos são armazenados e acessados em Último a entrar, primeiro a sair maneiras. Ou seja, os elementos são adicionados ao topo da pilha e removidos do topo da pilha.
Criando uma pilha
Para criar uma pilha, devemos importar o
java.util.Stack
pacote primeiro. Uma vez que importamos o pacote, aqui está como podemos criar uma pilha em Java.
Stack<Type> stacks = new Stack<>();
Aqui,
Type
indica o tipo da pilha. Por exemplo,
// Create Integer type stack
Stack<Integer> stacks = new Stack<>();
// Create String type stack
Stack<String> stacks = new Stack<>();
Métodos de pilha
Desde
Stack
estende o Vector
classe, ele herda todos os métodos Vector
. Para saber mais sobre diferentes Vector
métodos, visite Java Vector Class. Além desses métodos, o
Stack
class 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<String> animals= new Stack<>();
// Add elements to Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
}
}
Saída
Stack: [Dog, Horse, Cat]
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<String> 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);
}
}
Saída
Initial Stack: [Dog, Horse, Cat] Removed Element: Cat
Método peek()
O
peek()
O método 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<>();
// 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);
}
}
Saída
Stack: [Dog, Horse, Cat] Element at top: Cat
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<String> 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);
}
}
Saída
Stack: [Dog, Horse, Cat] Position of Horse: 2
Método vazio()
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<String> 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);
}
}
Saída
Stack: [Dog, Horse, Cat] Is the stack empty? false
Usar ArrayDeque em vez de pilha
O
Stack
A classe fornece a implementação direta da estrutura de dados da pilha. No entanto, é recomendável não usá-lo. Em vez disso, use o ArrayDeque
classe (implementa o Deque
interface) para implementar a estrutura de dados da pilha em Java. Para saber mais, acesse:
- Java ArrayDeque
- Por que usar Deque em vez de Stack?
Java