Мне нужно инвертировать карту с <String, List<String>>
до Map<String,String>
, используя java 8. с предположением, что значения уникальны. Например,
Карта ввода -
{"Fruit" -> ["apple","orange"], "Animal" -> ["Dog","Cat"]}
Карта вывода
{"apple" -> "Fruit", "orange" -> "Fruit", "Dog"->"Animal", "Cat" -> "Animal"}
Map <String, String> outputMap = new HashMap<>();
for (Map.Entry<String, List<String>> entry : inputMap.entrySet()) {
entry.getValue().forEach(value -> outputMap.put(value, entry.getKey()));
}
Это правильно? мы можем достичь этого с помощью потоков Java 8?