Questão de Programação — Linguagens de programação — FUNDATEC 2025
- Código
- qg472049
- Banca
- FUNDATEC
- Órgão
- GHC-RS
- Ano
- 2025
- Nível
- Médio
- Cargo
- Programador
- AImprime 30
- BImprime 36
- CImprime 40
- DImprime 46
- EApresenta erro de compilação.
GabaritoE — Apresenta erro de compilação.
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.
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.
Imprime 36 não corresponde ao resultado de nenhuma operação válida.
Imprime 40 também não se aplica.
Imprime 46 é outro valor incorreto.
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.
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.
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