Ao invés de acessar diretamente o valor do Map com get(index), utilizei um loop for (for-each) que percorre cada elemento do Map usando Map.Entry<K, V>. Dentro do loop, fiz uma verificação para imprimir o valor na tela apenas se a chave existir, evitando possíveis exceções do tipo NullPointerException.
Isso acontece porque o método get() do Map pode retornar null caso a chave informada não exista, o que pode levar a uma exceção caso tentemos manipular esse valor diretamente.
Embora essa abordagem seja um pouco mais verbosa, ela oferece maior segurança e evita falhas inesperadas no programa.
package com.github.rickmvi.challenge18;
import java.util.Map;
public class MapClient {
    public static void main(String[] args) {
        Map<Integer, String> map = Map.of(
            1, "Rick", 
            2, "Maria",
            3, "Joao",
            4, "Pedro"
        );
        
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            if (entry.getKey() == 2) {
                System.out.printf(
                        "The name of the client with ID %d is %s%n",
                                entry.getKey(),
                                entry.getValue()
                );
            }
        }
    }
}
O método Map.of() serve para criar um Map de forma direta e imutável.
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!