gpt4 book ai didi

java - 如何从 Apache Commons Collections 创建新的 MultiValueMap?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:49:20 25 4
gpt4 key购买 nike

我需要一个 TreeMap可以容纳多个值,所以我选择了 MultiValueMap来自 Commons Collections 4.0

用HashMap很简单

 private MultiValueMap<String, Pair<Integer, String>> foo = 
new MultiValueMap<String, Pair<Integer, String>>();

但是当我想使用一些其他 map 实现时,例如 TreeMap , 构造函数变得很笨拙..

//they hide MultiValueMap(Map map, Factory factory), 
//so I'll have to use static multiValueMap(...) instead

private MultiValueMap<String, Pair<Integer, String>> directoryMap=
MultiValueMap.multiValueMap(new TreeMap<String, Pair<Integer, String>>());

现在,Eclipse 向我抛出这个:

The method multiValueMap(Map<K,? super Collection<V>>) in the type MultiValueMap is not 
applicable for the arguments (TreeMap<String,Pair<Integer,String>>)

所以,我的问题是,Map<K,? super Collection<V>> 是什么意思? ?

我试过了 new TreeMap<String, ArrayList<Pair<Integer, String>>>()但这也不起作用。

最佳答案

我相信你应该使用

MultiValueMap.multiValueMap(
new TreeMap<String, Collection<Pair<Integer, String>>>());

...不是指 ArrayList,因为大概库希望自由选择将哪个集合实现放入映射中。

(也就是说:如果您要使用 Guava's Multimap,您可以在更简单的行 MultimapBuilder.treeKeys().arrayListValues().build() 并自动推断泛型。)

关于java - 如何从 Apache Commons Collections 创建新的 MultiValueMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21534224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com