0
给定Map<Key, Value>
其中values
可能会重复如何反映映射,使得结果为Map<Value, List<Key>>
?具有非唯一值的多映射的反向/反向映射
给定Map<Key, Value>
其中values
可能会重复如何反映映射,使得结果为Map<Value, List<Key>>
?具有非唯一值的多映射的反向/反向映射
使用流,而不使用通配符,不保留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())));
}