tkr*_*use 2 java multimap guava apache-commons-collection
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()));
Run Code Online (Sandbox Code Playgroud)
但这看起来并不理想。鉴于实例变量是 ListMultimap 类型,是否应该有一个方便的方法将其表示为 a Map<..., List>?
Apache commons-collections 也ArrayListValuedHashMap有同样的问题。
注意:返回的映射值保证为 类型
List。要获取具有更具体泛型类型的映射Map<K, List<V>>,请Multimaps.asMap(ListMultimap)改为调用。
返回
multimap.asMap(),其类型从 更正Map<K, Collection<V>>为Map<K, List<V>>。
| 归档时间: |
|
| 查看次数: |
1359 次 |
| 最近记录: |