Map<String, Integer> mapa = new HashMap<String,Integer>();
mapa.put("Joao",7);
mapa.put("Maria",13);
mapa.put("Joana",20);
System.out.println(mapa.get("Maria"));
Eu quero fazer o contrario da linha do sop. Eu quero colocar 13 e receber Maria.
Inverte os elementos, coloca os números como chave e os nomes como valor!
mas não há forma de dar o valor e receber a chave??
public static void main(String[] args) {
//criando mapa
System.out.println(getKeyByValue(mapa, 13));
}
public static <T, E> T getKeyByValue(Map<T, E> map, E value) {
for (Entry<T, E> entry : map.entrySet()) {
if (Objects.equals(value, entry.getValue())) {
return entry.getKey();
}
}
return null;
}
De: https://stackoverflow.com/a/2904266/5937189
2 curtidas
De forma simples assim não, você precisa de uma laço para percorrer o mapa e filtrar a sua busca!