Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FUNDATEC 2025

ProgramaçãoLinguagens de programação
Código
qg472049
Banca
FUNDATEC
Órgão
GHC-RS
Ano
2025
Nível
Médio
Cargo
Programador
Dado o seguinte programa escrito em Java 1.8, o que acontece após sua execução?package conceicao;import java.util.Collections;import java.util.HashSet;public class Conceicao {public static void main(String[] args) {HashSet<Integer> list = new HashSet<Integer>();list.add(2);list.add(3);list.add(5);list.add(2);Collections.sort(list);int s = 0;for (Integer n: list)s+= n+n * 2;System.out.println(s);}}
  1. AImprime 30
  2. BImprime 36
  3. CImprime 40
  4. DImprime 46
  5. EApresenta erro de compilação.
Revelar gabarito e comentário

GabaritoE — Apresenta erro de compilação.

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”.

Java: Collections.sort() com HashSet

Gabarito: letra E. O programa tenta ordenar um HashSet usando Collections.sort(). Em Java, o método sort() aceita apenas objetos que implementam a interface List (como ArrayList, LinkedList). HashSet implementa Set, não List, portanto o código não compila. Essa é uma pegadinha clássica da banca, que testa o conhecimento da hierarquia de coleções Java.

Alternativa A — ❌ Incorreta

A afirmação imprime 30 seria verdadeira se o código compilasse: o HashSet conteria {2, 3, 5} (valores únicos) e a soma s += n + n*2 resultaria em 6 + 9 + 15 = 30. Porém, o código nem chega a executar devido ao erro de compilação.

Alternativa B — ❌ Incorreta

Imprime 36 não corresponde ao resultado de nenhuma operação válida.

Alternativa C — ❌ Incorreta

Imprime 40 também não se aplica.

Alternativa D — ❌ Incorreta

Imprime 46 é outro valor incorreto.

Alternativa E — ✅ Correta ⟵ GABARITO

Collections.sort(list) espera uma List<?>. Como HashSet não é uma lista, o compilador gera um erro: The method sort(List<T>) in the type Collections is not applicable for the arguments (HashSet<Integer>). Portanto, o programa não compila.

NÃO CAIA NESSA!

A banca troca o tipo da coleção. O candidato pode calcular o valor 30 mentalmente e marcar a alternativa A, mas esquece que HashSet não pode ser ordenado com sort. Sempre verifique o tipo do parâmetro exigido pelo método.

PEGA ESSA DICA!

Decore a hierarquia de coleções: List (ArrayList, LinkedList) permite acesso por índice e ordenação; Set (HashSet, TreeSet) não possui ordem e não é compatível com Collections.sort(). Em Java, para ordenar um Set, converta-o primeiro para uma lista: new ArrayList<>(set).

Resumo: O programa não compila porque HashSet não implementa List. Gabarito: letra E.

Link permanente: /questoes/qg472049