С простыми java.util.Map
реализациями, я боюсь, что вы должны выполнять итерации записей карты и проверять каждое значение:
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue().equals(desiredValue) {
keys.add(entry.getKey());
}
}
Если вы хотите повысить производительность, вы можете создать параллельное отображение иззначения в списки ключей.Я не знаю ни о какой существующей коллекции, делающей это, но это не должно быть сложно реализовать.
Начиная с Java 8, вы можете использовать map.forEach:
map.forEach((k,val) -> {
if (val.equals(desiredValue) {
keys.add(k);
}
});