没有针对 MultiValuedMap 的标准包装器实现



我错过了什么,还是真的没有 Apache 新MultiValuedMap的默认实现可以用来简单地包装提供的Map<K, ? extends Collection<V>>

换句话说,我正在寻找现已弃用的MapUtils.multiValueMap工厂方法的直接替代品:像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不存在了。

最新更新