Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — CEPS-UFPA 2022
Algoritmos e Estrutura de Dados›Estrutura de Dados
Código
gp036800
Banca
CEPS-UFPA
Órgão
UFPA
Ano
2022
Cargo
CEPS - - Técnico de Tecnologia da Informação
Considere o código Java a seguir. ArrayList lista = new ArrayList<Float>(); Set set = new HashSet<Integer>(); Stack pilha = new Stack<Integer>(); pilha.push(4); pilha.push(2); pilha.push(7); pilha.pop(); set.add(8); set.add(4); set.add(8); lista.add(1f); lista.add(3f); lista.add(7f); lista.remove(1); System.out.println(lista); System.out.println(set); System.out.println(pilha); A saída correta desse trecho de código é
A[4, 2] [4, 8] [1.0, 7.0]
B[1.0, 7.0] [4, 8] [4, 2]
C[4, 2] [4, 8, 4] [3.0, 7.0]
D[3.0, 7.0] [4, 8, 4] [4, 2]
E[1.0, 7.0] [4, 8] [2, 7]
Revelar gabarito e comentário▾
GabaritoB — [1.0, 7.0]
[4, 8]
[4, 2]
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Análise de código Java: ArrayList, HashSet, Stack
Gabarito: letra B. O código produz as seguintes saídas: a lista [1.0, 7.0], o conjunto [4, 8] e a pilha [4, 2]. A alternativa B é a única que reflete exatamente essa sequência.
Passo a passo da execução
Pilha (Stack):
push(4) → [4]
push(2) → [4, 2]
push(7) → [4, 2, 7]
pop() → remove o topo (7), resulta em [4, 2]
Conjunto (HashSet):
add(8) → {8}
add(4) → {8, 4}
add(8) → ignorado (já existe), permanece {8, 4}
Lista (ArrayList):
add(1f) → [1.0]
add(3f) → [1.0, 3.0]
add(7f) → [1.0, 3.0, 7.0]
remove(1) → remove o elemento no índice 1 (o 3.0), resultando em [1.0, 7.0]
NÃO CAIA NESSA!
O método remove(1) do ArrayList recebe um int e interpreta como índice, não como valor. Muitos candidatos confundem com remove(Object), que removeria o objeto 1.0. A banca explora exatamente essa sobrecarga de métodos. Lembre-se: remove(int index) atua sobre a posição; para remover por valor, use remove(Object).
Alternativa A — ❌ Incorreta
A primeira linha [4,2] corresponde à pilha, mas a ordem das saídas no enunciado é: primeiro lista, depois set, depois pilha. Portanto, a ordenação está errada. A lista deveria ser [1.0, 7.0].
Alternativa B — ✅ Correta ⟵ GABARITO
A sequência [1.0, 7.0], [4, 8], [4, 2] é exatamente a produzida pelo código.
Alternativa C — ❌ Incorreta
A segunda linha [4, 8, 4] é impossível em um HashSet, pois ele não permite elementos duplicados. O conjunto só pode conter [4, 8]. Além disso, a primeira linha [4,2] está trocada com a terceira.
Alternativa D — ❌ Incorreta
Assim como em C, a presença de [4, 8, 4] no conjunto é inválida (duplicata). A primeira linha [3.0, 7.0] também está errada.
Alternativa E — ❌ Incorreta
A terceira linha [2, 7] está incorreta. Após o pop(), a pilha contém [4, 2], não [2, 7].