Quem nunca precisou implementar uma pilha? Principalmente no mundo acadêmico? Todo programador que se preze já implementou uma pilha, seja ela em C, C++, Pascal, etc. O pacote java.util fornece uma classe pronta para manipular esta estrutura de dados.

Precisaremos trabalhar com algumas funções:

  • push() – Insere um elemento na pilha
  • pop() – Remove um elemento da pilha
  • empty() – Verifica se a pilha está vazia

A função push() recebe como parâmetro um Object, portanto para armazenar primitivos será necessário armazenar uma classe Wrapper (Integer, Double, Float etc). Vamos ao exemplo:

Stack pilha = new Stack(); // Classe Pilha

// Ver artigo geração de numeros randômicos
    Random random = new Random();       
//Alimenta a pilha com números inteiros
    for (int i=0;i<10;i++){
// Insere na pilha números aleatórios de 0 a 100

        System.out.println("Inserindo na pilha: " + pilha.push(random.nextInt(100)));            

    }
// Retira da pilha
    for (int i=0;i<10;i++){
        System.out.println("Retirando da pilha: " + pilha.pop());       
    }

}

Veja a saída:

Inserindo na pilha: 44
Inserindo na pilha: 78
Inserindo na pilha: 53
Inserindo na pilha: 31
Inserindo na pilha: 52
Inserindo na pilha: 86
Inserindo na pilha: 96
Inserindo na pilha: 16
Inserindo na pilha: 23
Inserindo na pilha: 95
Retirando da pilha: 95
Retirando da pilha: 23
Retirando da pilha: 16
Retirando da pilha: 96
Retirando da pilha: 86
Retirando da pilha: 52
Retirando da pilha: 31
Retirando da pilha: 53
Retirando da pilha: 78
Retirando da pilha: 44

Mas nem sempre é possível saber qual o tamanho de sua pilha. Caso fosse feita uma retirada indevida (a pilha estivesse vazia) seria gerada uma EmptyStackException. Para evitar esta exceção utilizaremos o método empty() que retorna um boleano indicando se a pilha está vazia ou não:


 while(!pilha.empty())

            System.out.println("Retirando da pilha: " + pilha.pop());

Links Úteis

  • Como publicar seu app iOS na App Store:

    Neste curso você aprenderá a publicar seu aplicativo iOS na App Store, disponibilizando-o para que seus usuários possam fazer download e instalá-lo em seus dispositivos.

  • Navegação entre telas no Android:

    Aprenda neste conteúdo como é feita a navegação entre activities (telas) no Android usando Java. Veremos como efetuar a navegação com e sem passagem de parâmetros.

  • Um bate-papo sobre o Delphi:

    O Delphi está em constante evolução e com ele podemos criar aplicações desktop, servidores de aplicações, aplicativos móveis, entre outros.

Saiba mais sobre Programação ;)

  • Como ser um Programador PHP:

    Neste guia de estudos você encontra os conteúdos que precisará para se tornar um programador PHP completo.

  • Como ser um Programador Delphi:

    Neste guia de estudos você encontra os conteúdos que precisará para se tornar um programador Delphi completo.

  • Como ser um Programador Java:

    Nesse Guia de Referência você encontrará o conteúdo que precisa para iniciar seus estudos sobre a tecnologia Java, base para o desenvolvimento de aplicações desktop, web e mobile/embarcadas.