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 中还没有它。