Como receber a key a partir do value HAHSMAP JAVA?

    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

obrigado!!

De forma simples assim não, você precisa de uma laço para percorrer o mapa e filtrar a sua busca!