Analise o seguinte trecho de código Java:import java.util.Ar...

Próximas questões
Com base no mesmo assunto
Q2171694 Programação

Analise o seguinte trecho de código Java:

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

public class ArrayLista {

        public static void main(String[] args) {

                 List<String> str = Arrays.asList("c", "a", "b");

                 str.sort();

                 System.out.println(str.toString());

         }

}


O que será escrito na saída padrão após a execução?

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - Mensagem de erro de compilação.

A questão apresenta um trecho de código em Java e pergunta sobre o resultado da sua execução, mas há erros no código que impedem a compilação, e por isso a alternativa correta é a que indica um erro de compilação.

Para entender o gabarito, precisamos analisar o trecho de código fornecido. O erro ocorre na linha:

List<String><string> str = Arrays.asList("c", "a", "b");

Essa linha contém vários problemas. Um erro de sintaxe imediatamente aparente é o uso de <string> após a declaração do tipo genérico List<String>. Em Java, os tipos genéricos são utilizados entre <> e não requerem repetição ou uso de tags HTML. Além disso, a presença de <string> e </string> indica uma confusão entre o código Java e a formatação HTML, o que é inválido para um código fonte Java.

Outro ponto que poderia ser um erro, mas na verdade não é, é o método sort chamado diretamente em uma lista. Isto é válido a partir do Java 8, já que List possui o método sort default. No entanto, como existem erros de compilação anteriores, esse ponto se torna irrelevante para o problema em questão.

Portanto, a execução do código como está resultaria em um erro de compilação, o que justifica a alternativa correta ser a E.

Para corrigir o código e fazer com que ele execute e ordene a lista de strings, ele deveria ser algo como:

import java.util.Arrays;
import java.util.List;

public class ArrayLista {
    public static void main(String[] args) {
        List<String> str = Arrays.asList("c", "a", "b");
        str.sort(null);
        System.out.println(str.toString());
    }
}

Com essas correções, o código compilado e executado iria imprimir a lista ordenada alfabeticamente, isto é, ["a", "b", "c"].

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Aslist retorna uma lista imutável

O método sort precisa que seja fornecido um Comparator ou NULL como parâmetro. Quando utilizado NULL, o ordenamento se dará de acordo com a ordem natural dos elementos da lista.

Fonte: https://docs.oracle.com/javase/8/docs/api/java/util/List.html

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo