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