Допустим, мой оригинал Map
содержит следующее:
Map<String, Set<String>> original = Maps.newHashMap();
original.put("Scott", Sets.newHashSet("Apple", "Pear", "Banana");
original.put("Jack", Sets.newHashSet("Banana", "Apple", "Orange");
И я хочу создать обратное Map
, содержащее следующее:
"Apple": ["Scott", "Jack"]
"Pear": ["Scott"]
"Banana": ["Scott", "Jack"]
"Orange": ["Jack"]
Я знаю, что это можетбыть сделано по старинке (до Java 8), но как мне добиться того же, используя Java Stream API?
Map<String, Set<String>> reversed = original.entrySet().stream().map(x -> ????).collect(??)
Здесь размещен аналогичный вопрос здесь , но он работает только для однозначных Map
с.