1

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

换句话说,我正在寻找现在已弃用的MapUtils.multiValueMap工厂方法的直接替换:没有一个现有的实现能HashSetValuedHashMap满足我的需求,因为我需要IdentifyHashMap用作后端映射

4

1 回答 1

0

最后我不得不自己实现必要的辅助方法:

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了。

于 2020-02-04T10:04:14.520 回答