Considere o seguinte código em Java:Ao ser executado com as ...

Próximas questões
Com base no mesmo assunto
Q2447933 Programação
Considere o seguinte código em Java:

Imagem associada para resolução da questão


Ao ser executado com as importações necessárias, o código Java acima imprime na saída padrão:
Alternativas

Comentários

Veja os comentários dos nossos alunos

Continuação:

**3. Imprimindo o Resultado:**

```java

System.out.println(texto);

```

* **`System.out.println(texto);`:** Imprime a string final `texto` no console.

**Observações:**

* O código utiliza streams Java 8 para processar e formatar as entradas do `Map`.

* A ordenação das entradas por código de estado garante que os estados sejam exibidos em ordem crescente.

* A formatação final utiliza o caractere ":" para separar os códigos de estado dos nomes das cidades.

**Resultado Final:**

Ao executar o código, o seguinte texto será impresso no console:

```

11: Amapá, 13: Itaubal, 15: Cutias

```

Este código demonstra como utilizar streams Java, ordenação e formatação de strings para processar e exibir dados de forma eficiente e organizada.

Fonte: Gemini

## Análise Detalhada do Código Java

**1. Criando um Map de Cidades:**

```java

Map<String, String> cidades = Map.of("11", "Amapá", "13", "Itaubal", "15", "Cutias");

```

* **`Map<String, String>`:** Declara a variável `cidades` como um objeto do tipo `Map` que mapeia chaves do tipo `String` para valores do tipo `String`.

* **`Map.of()`:** Cria um novo objeto `Map` imutável e o atribui à variável `cidades`.

* **Pares chave-valor:** O método `Map.of()` recebe pares de chave-valor separados por vírgulas. Neste caso, ele cria um mapeamento entre os códigos de estado (`11`, `13`, `15`) e seus respectivos nomes (`Amapá`, `Itaubal`, `Cutias`).

**2. Ordenando e Formatando as Entradas do Map:**

```java

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(": "));

```

* **`cidades.entrySet().stream()`:** Obtém um stream das entradas do `Map` `cidades`. Cada entrada é um par chave-valor representado por um objeto `Map.Entry`.

* **`.sorted(...)`:** Ordena as entradas do `Map` por ordem crescente da chave (código de estado).

  * `(e1, e2) -> e1.getKey().compareTo(e2.getKey())`: Função de comparação lambda que utiliza o método `compareTo()` para comparar as chaves das entradas `e1` e `e2`.

* **`.map(e -> Arrays.asList(e.getKey(), e.getValue()))`:** Transforma cada entrada `e` em uma lista contendo a chave e o valor da entrada.

  * `e.getKey()`: Obtém a chave da entrada `e`.

  * `e.getValue()`: Obtém o valor da entrada `e`.

  * `Arrays.asList()`: Cria uma lista imutável a partir dos elementos fornecidos.

* **`.map(e -> String.join(", ", e))`:** Transforma cada lista em uma string concatenando seus elementos com a vírgula e espaço como separadores.

  * `String.join(", ", e)`: Junta os elementos da lista `e` em uma string, separando-os com a vírgula e espaço.

* **`.collect(Collectors.joining(": "))`:** Combina as strings resultantes em uma única string, separando-as com dois pontos e um espaço.

  * `Collectors.joining(": "):` Colecionador que concatena as strings do stream, utilizando ": " como separador entre cada string.

Fonte: Gemini

Continua...

Clique para visualizar este comentário

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