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.