Mapa: como obter todas as chaves associadas a um valor?

Dado um mapa, como procuro todas as chaves associadas a um valor específico?

Por exemplo:

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
map.put(1, 5);
map.put(2, 2);
map.put(3, 5);
Collection<Integer> keys = map.values(5); // should return {1, 3}

Estou procurando algo semelhante ao Google Collections 'BiMap onde os valores não são únicos.

questionAnswers(1)

yourAnswerToTheQuestion