Gabarito disponível
Considere o código em Java a seguir, especialmente em relação aos valores descritos na notação JSON.
import java.util.Arrays;
import java.util.Collections;
public class JsonSortDescendingExample {
public static void main(String[] args) {
String jsonString =
“{\”TJPA\”:[\”Tribunal\”,\”Justica\”,\”Estado\”
,\”Para\”]}”;
String arrayContent =
jsonString.substring(
jsonString.indexOf(“[“) + 1,
jsonString.indexOf(“]”)
);
String[] values =
arrayContent.replaceAll(“\”“, ““).split(“,”);
Arrays.sort(values,
Collections.reverseOrder());
// Exibindo os valores ordenados
System.out.println(“Resultado:”);
for (int i = values.length - 1; i >= 0; i--)
{
System.out.println(values[i]);
}
}
}
Esse código, ao ser executado, apresentará o resultado a seguir.
Resultado:
Estado
Justica
Para
Tribunal
Resolução comentada
O código ordena em ordem decrescente e imprime de trás para frente, resultando em ordem crescente.
Após remover as aspas e fazer o split, o array fica [Tribunal, Justica, Estado, Para]. Com Collections.reverseOrder(), a ordenação é decrescente: Tribunal, Para, Justica, Estado. O laço imprime do último índice ao primeiro, então a saída é Estado, Justica, Para, Tribunal, igual à apresentada.
Análise das alternativas
A (Certo) está correta: a saída descrita coincide com a execução. B (Errado) está incorreta, pois não há erro de compilação nem de lógica que altere o resultado.
Referência: Java SE: Arrays.sort com Collections.reverseOrder(); String.substring, replaceAll e split.
Resolução comentada do VaiConcursos.