Java - a classe Stack
Stack é uma subclasse de Vector que implementa uma pilha padrão último a entrar, primeiro a sair.
Stack apenas define o construtor padrão, que cria uma pilha vazia. Stack inclui todos os métodos definidos por Vector e adiciona vários métodos próprios.
Stack( )
Além dos métodos herdados de sua classe pai Vector, Stack define os seguintes métodos -
Sr. Não. | Método e Descrição |
---|---|
1 | boolean empty() Testa se esta pilha está vazia. Retorna verdadeiro se a pilha estiver vazia e retorna falso se a pilha contém elementos. |
2 | Object peek( ) Retorna o elemento no topo da pilha, mas não o remove. |
3 | Object pop( ) Retorna o elemento no topo da pilha, removendo-o no processo. |
4 | Object push(Object element) Coloca o elemento na pilha. O elemento também é retornado. |
5 | int search(Object element) Procura um elemento na pilha. Se encontrado, seu deslocamento do topo da pilha é retornado. Caso contrário, -1 é retornado. |
Exemplo
O programa a seguir ilustra vários dos métodos suportados por esta coleção -
import java.util.*;
public class StackDemo {
static void showpush(Stack st, int a) {
st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
static void showpop(Stack st) {
System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("stack: " + st);
}
public static void main(String args[]) {
Stack st = new Stack();
System.out.println("stack: " + st);
showpush(st, 42);
showpush(st, 66);
showpush(st, 99);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
} catch (EmptyStackException e) {
System.out.println("empty stack");
}
}
}
Isso produzirá o seguinte resultado -
Resultado
stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack