Analise o seguinte trecho de código Java:import java.util.Ar...
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?
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