Questão nº 79

Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 79)

FGV2024Analista Judiciário - TI - Segurança da InformaçãoTecnologia da Informação
Gabarito: Cver comentário ↓

Considere o seguinte código em Java:
```
Map<String, String> cidades =
Map.of("11","Amapá","13","Itaubal","15","Cutias");
String texto =
cidades.entrySet().stream().sorted(
(e1, e2) -> e1.getKey().compareTo(e2.getKey()))
.map(e-> Arrays.asList(e.getKey(), e.getValue()))
.map(e-> String.join(", ", e))
.collect(Collectors.joining(": "));
System.out.println(texto);
```
Ao ser executado com as importações necessárias, o código Java acima imprime na saída padrão:

Resposta comentada

Gabarito Alternativa C

Streams em Java são sequências de elementos que suportam operações de processamento, como transformar (map) e combinar (collect), permitindo manipular coleções de forma expressiva e eficiente.

  • Map.of("11","Amapá","13","Itaubal","15","Cutias"): Cria um mapa com chaves e valores.
  • entrySet().stream(): Obtém um stream de pares chave-valor (Map.Entry).
  • sorted((e1, e2) -> e1.getKey().compareTo(e2.getKey())): Ordena os pares pelo valor da chave em ordem crescente (lexicográfica). A ordem resultante é: ("11", "Amapá"), ("13", "Itaubal"), ("15", "Cutias").
  • map(e-> Arrays.asList(e.getKey(), e.getValue())): Transforma cada par em uma lista de duas strings: ["chave", "valor"]. Ex: ["11", "Amapá"].
  • map(e-> String.join(", ", e)): Transforma cada lista em uma única string, unindo os elementos com ", ". Ex: "11, Amapá".
  • collect(Collectors.joining(": ")): Coleta todas as strings resultantes, unindo-as com ": ".

O fluxo de strings para o Collectors.joining será:

  1. "11, Amapá"
  2. "13, Itaubal"
  3. "15, Cutias"

Ao uni-las com ": ", o resultado final é: "11, Amapá: 13, Itaubal: 15, Cutias".

A) Incorreta: A ordem dos elementos está incorreta, e o formato de união também não corresponde ao esperado.
B) Incorreta: A ordem dos elementos está incorreta, e o formato de união também não corresponde ao esperado.
C) Correta: A sequência de operações resulta exatamente em "11, Amapá: 13, Itaubal: 15, Cutias", pois os elementos são ordenados pela chave, formatados como "chave, valor" e depois unidos por ": ".
D) Incorreta: Esta alternativa usa , como separador final entre os pares, mas o Collectors.joining(": ") especifica que o separador entre os elementos do stream final deve ser ": ". A armadilha aqui é confundir o separador interno de cada par (", ") com o separador externo entre os pares (": ").
E) Incorreta: A ordem dos elementos está incorreta, pois a ordenação é feita pela chave em ordem crescente, não decrescente.

Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Segurança da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho