Java8: от HashMap <X, Y> до HashMap <X, Z> с использованием Stream / Map-Reduce / Collector

Я знаю, как "преобразовать" простую JavaList отY ->Zт.е.

List<String> x;
List<Integer> y = x.stream()
        .map(s -> Integer.parseInt(s))
        .collect(Collectors.toList());

Теперь я хотел бы сделать в основном то же самое с картой, т.е.

INPUT:
{
  "key1" -> "41",    // "41" and "42"
  "key2" -> "42      // are Strings
}

OUTPUT:
{
  "key1" -> 41,      // 41 and 42
  "key2" -> 42       // are Integers
}

Решение не должно ограничиватьсяString ->Integer, Прямо как вList Пример выше, я хотел бы вызвать любой метод (или конструктор).

Ответы на вопрос(9)

Ваш ответ на вопрос