Map<String, List<String>> collect2 = stream.flatMap(i -> i.entrySet().stream())
.collect(Collectors.groupingBy(k -> k.getKey(), Collectors.flatMapping(i -> i.getValue().stream(),Collectors.toList())));//JDK9
;
Map<String, List<String>> collect = stream.flatMap(i -> i.entrySet().stream())
.collect(Collectors.groupingBy(k -> k.getKey(), Collectors.mapping(i -> i.getValue(), Collectors.reducing(new ArrayList<>(), (list, list2) -> {
list.addAll(list2);
return list;
}))));