java如何将Map<Key1Type,Val1Type>转换为Map<Key1Type,Val2Type>
要按照下面的方法签名进行转换
Map<A, Set<B>> convert(Map<A, List<B>> original){
original.entrySet().stream().map(entry -> {
return new SimpleImmutableEntry(entry.getKey(), new HashSet<>(entry.getValue()));
}).collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue()));
}
我不知道为什么。am所做的只是将条目转换为Map.Entry<String, Set<String>>
的中间条目,而不是收集
# 1 楼答案
更简单的定义跳过了中间
map
步骤,因为您可以将Map.Entry<A, List<B>>
内的每个Map.Entry<A, Set<B>>
转换为collect
步骤:您可以在方法
convert
前面加上static <A,B>
,以确保它适用于任何类型A
和B
# 2 楼答案