鉴于Map<Key, Value>
values
可能会重复如何反映地图以使结果属于Map<Value, List<Key>>
类型?
答案 0 :(得分:0)
使用没有通配符的流,不保留null
值:
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.mapping;
import static java.util.stream.Collectors.toList;
public static <Key, Value> Map<Value, List<Key>> inverseMap(Map<Key, Value> map) {
return map.entrySet().stream()
.collect(groupingBy(Map.Entry::getValue, mapping(Map.Entry::getKey, toList())));
}