- Autor
- Nome
- Nelson Silva
- Social
Introdução
A estrutura de dados do tipo "pilha" é uma das mais essenciais em ciência da computação. Em Java, a classe Stack
proporciona uma implementação eficiente deste tipo de estrutura.
- Características da Classe Stack
- Quando usar a Classe Stack?
- Métodos Adicionais da Classe Stack
- Limitações e Considerações
Características da Classe Stack
- LIFO (Last In - First Out): A principal característica da pilha é que o último elemento que é inserido é o primeiro a ser removido.
- Dinâmica: A classe
Stack
cresce e encolhe dinamicamente conforme os elementos são adicionados ou removidos. - Métodos fundamentais:
push()
,pop()
epeek()
são os métodos mais utilizados em uma pilha.
Quando usar a Classe Stack?
A pilha é geralmente utilizada em situações onde a ordem de processamento precisa seguir a regra LIFO. Algumas aplicações típicas incluem:
- Validar expressões com parênteses balanceados.
- Implementação de funções de "undo" em editores.
- Navegação de páginas em navegadores web (botões de voltar e avançar).
- Conversão de expressões infixas para postfixas.
package com.caffeinealgorithm.programaremjava;
import java.util.Stack;
public class ClasseStack {
private Stack<Integer> pilha = new Stack<>();
private int multiplicador = 10, numero = 1;
public void Run() {
for (int indice = 1; indice <= 5; indice++) {
pilha.push(numero);
numero *= multiplicador;
}
imprimirPilha();
System.out.printf("\nA remover o número %d da pilha com o método pop().\n\n", pilha.pop());
imprimirPilha();
System.out.printf("\nO número que se encontra a seguir para ser removido da pilha é o %d.", pilha.peek());
}
private void imprimirPilha() {
for (int numero : pilha)
System.out.println(numero);
}
}
/*
1
10
100
1000
10000
A remover o número 10000 da pilha com o método pop().
1
10
100
1000
O número que se encontra a seguir para ser removido da pilha é o 1000.
*/
Métodos Adicionais da Classe Stack
isEmpty()
: Retorna verdadeiro se a pilha estiver vazia.search(Object o)
: Retorna a posição de um objeto na pilha, com a contagem começando do topo (o elemento 1 é o topo).size()
: Retorna o número de elementos na pilha.clear()
: Remove todos os elementos da pilha.
Limitações e Considerações
Enquanto a classe Stack
é útil, em muitos cenários modernos, é preferível usar a classe Deque
em vez da Stack
devido à sua maior flexibilidade e capacidade de ser utilizada tanto como pilha quanto como fila.
Conclusão
A classe Stack
é uma implementação vital e clássica da estrutura de dados pilha em Java. Saber como e quando usá-la é crucial para muitos algoritmos e aplicações. Aprender os seus métodos e características é um passo essencial para se tornar um desenvolvedor Java competente.