English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manual Básico de Java

Controle de fluxo Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (fila)

conjunto Map do Java

conjunto Set do Java

Java Entrada e Saída (I/O)

Reader do Java/Writer

Outros tópicos do Java

Stack Java

Neste tutorial, vamos aprender a classe Stack do Java e seus métodos com exemplos.

O framework de coleções Java possui uma classe chamada Stack, que fornece funcionalidades de estrutura de dados de pilha.

A classe Stack desta inheritancea da classe Vector.

implementação da pilha

Dentro da pilha, os elementos sãoúltimo a entrar, primeiro a sairmaneira de armazenar e acessar. Isso significa que os elementos são adicionados ao topo da pilha e removidos do topo da pilha.

Criar pilha

Para criar uma pilha, devemos primeiro importar o pacote java.util.Stack. Após a importação do pacote, podemos usar Java para criar uma pilha.

Stack<Type> stacks = new Stack<>();

Aqui, Type indica o tipo da pilha. Por exemplo,

//Criar pilha de tipo inteiro
Stack<Integer> stacks = new Stack<>();
//Criar pilha de tipo String
Stack<String> stacks = new Stack<>();

Métodos de pilha

Como a pilha herda a classe Vector, ela herda todos os métodos do Vector. Para entender diferentes métodos do Vector, acesseClasse Vector do Java.

Além desses métodos, a classe Stack inclui5Métodos que diferenciam-se do Vector.

Método push()

Para adicionar elementos ao topo da pilha, usamos o método push(). Por exemplo,

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        //Adicionar elementos à pilha
        animals.push("Cão");
        animals.push("Cavalo");
        animals.push("Gato");
        System.out.println("Stack: ", + animals);
    }
}

Saída

Stack: [Cão, Cavalo, Gato]

Método pop()

Para remover elementos do topo da pilha, usamos o método pop(). Por exemplo,

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        //Adicionar elemento ao Stack
        animals.push("Cão");
        animals.push("Cavalo");
        animals.push("Gato");
        System.out.println("Pilha inicial: "); + animals);
        //Remoção de elemento da pilha, princípio de último a entrar, primeiro a sair
        String element = animals.pop();
        System.out.println("Remoção de elemento: "); + element);
    }
}

Saída

Pilha inicial: [Dog, Horse, Cat]
Remoção de elemento: Cat

Método peek()

O método peek() 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<>();
        //Adicionar elementos à pilha
        animals.push("Cão");
        animals.push("Cavalo");
        animals.push("Gato");
        System.out.println("Stack: ", + animals);
        //Acesso ao elemento do topo, princípio de último a entrar, primeiro a sair
        String element = animals.peek();
        System.out.println("Elemento no topo: "); + element);
    }
}

Saída

Stack: [Cão, Cavalo, Gato]
Elemento no topo: Cat

Para procurar elementos na pilha, usamos o método search(). Ele retorna a posição do elemento a partir do topo da pilha. Por exemplo,

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        //Adicionar elementos à pilha
        animals.push("Cão");
        animals.push("Cavalo");
        animals.push("Gato");
        System.out.println("Stack: ", + animals);
        //Pesquisa de elemento
        int position = animals.search("Horse");
        System.out.println("A posição do elemento Horse: "); + position);
    }
}

Saída

Stack: [Cão, Cavalo, Gato]
A posição do elemento Horse: 2

Método empty()

Para verificar se a pilha está vazia, usamos o método empty(). Por exemplo,

import java.util.Stack;
class Main {
    public static void main(String[] args) {
        Stack<String> animals = new Stack<>();
        //Adicionar elementos à pilha
        animals.push("Cão");
        animals.push("Cavalo");
        animals.push("Gato");
        System.out.println("Stack: ", + animals);
        //Verificar se a pilha está vazia
        boolean result = animals.empty();
        System.out.println("A pilha está vazia? ", + result);
    }
}

Saída

Stack: [Cão, Cavalo, Gato]
A pilha está vazia? false

Usar ArrayDeque em vez de Stack

Esta classe Stack fornece a estrutura de dados de pilha para execução direta. No entanto, é recomendável não usá-la. Em vez disso, use a classe ArrayDeque (que implementa a interface Deque) para implementar a estrutura de dados de pilha no Java.

Para obter mais informações, acesse:ArrayDeque Java