MultiValuedMap 没有标准的包装器实现
No standard wrapper implementation for MultiValuedMap
我是不是遗漏了什么,或者真的没有 Apache 的新 MultiValuedMap
的默认实现可以用来简单地包装提供的 Map<K, ? extends Collection<V>>
?
换句话说,我正在寻找现在已弃用的 MapUtils.multiValueMap
factory method 的直接替代品: none 现有实现的 HashSetValuedHashMap
满足我的需求,因为我需要使用 IdentifyHashMap
作为后端映射
最后我不得不自己实现必要的辅助方法:
public static <K, V, C extends Collection<V>> MultiValuedMap<K, V> multiValueMap(Map<K, C> map,
final Factory<C> collectionFactory) {
return new AbstractMultiValuedMap<K, V>(map) {
@Override
protected Collection<V> createCollection() {
return collectionFactory.create();
}
};
}
尽管如此,实施是多么微不足道,我不敢相信 commons-collections
中还没有它。
我是不是遗漏了什么,或者真的没有 Apache 的新 MultiValuedMap
的默认实现可以用来简单地包装提供的 Map<K, ? extends Collection<V>>
?
换句话说,我正在寻找现在已弃用的 MapUtils.multiValueMap
factory method 的直接替代品: none 现有实现的 HashSetValuedHashMap
满足我的需求,因为我需要使用 IdentifyHashMap
作为后端映射
最后我不得不自己实现必要的辅助方法:
public static <K, V, C extends Collection<V>> MultiValuedMap<K, V> multiValueMap(Map<K, C> map,
final Factory<C> collectionFactory) {
return new AbstractMultiValuedMap<K, V>(map) {
@Override
protected Collection<V> createCollection() {
return collectionFactory.create();
}
};
}
尽管如此,实施是多么微不足道,我不敢相信 commons-collections
中还没有它。