NetRunner: Java Mastery Guide 1.0 Help

Stacks: A Pilha de Downloads

STACK OPERATIONS ├── push() (Upload) ├── pop() (Download) └── peek() (Preview)

Fundamentos

Stacks são como uma pilha de downloads - o último arquivo baixado é o primeiro que você acessa (LIFO).

// Criando uma pilha de downloads Stack<String> downloads = new Stack<>(); downloads.push("arquivo.zip"); // Adiciona no topo String ultimo = downloads.pop(); // Remove do topo

Operações Básicas

Push (Upload)

Stack<String> stack = new Stack<>(); stack.push("Camada 1"); // Base stack.push("Camada 2"); // Meio stack.push("Camada 3"); // Topo

Pop (Download)

String top = stack.pop(); // Remove e retorna topo String peek = stack.peek(); // Só espia o topo boolean vazia = stack.empty(); // Checa se está vazia

Busca

int posicao = stack.search("Camada 1"); // Busca na pilha // Retorna posição (1 = topo) ou -1 se não encontrar

Casos de Uso

1. Histórico de Navegação

Stack<String> historico = new Stack<>(); historico.push("homepage.html"); historico.push("perfil.html"); String voltar = historico.pop(); // Volta página

2. Desfazer/Refazer

Stack<Command> undoStack = new Stack<>(); undoStack.push(new Command("save")); Command lastCommand = undoStack.pop(); // Desfaz

3. Validação de Sintaxe

Stack<Character> brackets = new Stack<>(); brackets.push('{'); // Abre char close = brackets.pop(); // Fecha // Válido se stack vazia no final

Implementação Alternativa

// Usando Deque como Stack (mais moderno) Deque<String> stack = new ArrayDeque<>(); stack.push("Novo"); String top = stack.pop();

Dicas de Performance

// Vector é thread-safe mas mais lento Stack<Integer> threadsafe = new Stack<>(); // ArrayDeque é mais rápido mas não thread-safe Deque<Integer> fast = new ArrayDeque<>();

Exercícios Práticos

  1. Implemente um verificador de parênteses

  2. Crie um sistema de desfazer/refazer

  3. Desenvolva um navegador simplificado

Próximos Passos

Depois de dominar Stacks, você estará pronto para:

  1. Implementar históricos e navegação

  2. Criar sistemas de desfazer/refazer

  3. Validar expressões e sintaxe

Queues: Filas Collections Projects

26 June 2025