GuavaMultiMap有实现ImmutableListMultimap和ImmutableSetMultimap. 鉴于我已经创建了一个ImmutableListMultimap<String, Anything>实例,我怎样才能将它转换成一个java.util.Map<String, List<Anything>>?
该asMap()方法返回 a java.util.Map<String, Collection<Anything>>,但不能强制转换为java.util.Map<String, List<Anything>>。
我现在最好的是
final Map<String, Collection<Anything>> listMultimap = multimap.asMap();
// convert to Map<String, List<>>
final Map<String, List<Anything>> listMap = listMultimap.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
e -> (List<Anything>) e.getValue()));
但这看起来并不理想。鉴于实例变量的类型为 ListMultimap,难道不应该有一种方便的方法将其表示为Map<..., List>?
Apache commons-collectionsArrayListValuedHashMap也有同样的问题。