与HashMultiset多重映射的值
-
22-09-2019 - |
题
我试图具有(基于散列的)Multimap之与每个键的值的(基于散列的)多集。参见例如:
Multimap<Object, Object> mmap = Multimaps.newMultimap(
Maps.<Object, Collection<Object>>newHashMap(),
new Supplier<Collection<Object>>() {
public Collection<Object> get() {
return HashMultiset.create();
}
});
mmap.put("1", "2");
不过,
System.out.println(mmap.get("1") instanceof Multiset<?>);
//false, the returned collection is not a HashMultiset,
//but a (private) WrappedCollection
因此,似乎我无法访问我创建了多集?我希望能够返回,作为一个多重(包裹在Multisets.unmodifiableMultiset())。我不希望将它复制到一个新的多集,每次无论是。我必须重新切换至Map<K, Multiset<V>>
和我的代码添加复杂性Multimap
旨在消除任何其他选择吗?
解决方案
恐怕这似乎并不可能。你应该提交功能请求。我暗自怀疑那些狡猾的谷歌人有一个漂亮的那种多重映射的,他们可能会释放出可能潜在帮助你。
其他提示
在 Multimap之接口一>只指定get(K)
回报Collection<V>
。我认为这将是设计不良的代码依赖或承担其他任何东西。
可以展开多一点什么你想在这里做什么?似乎应该有更简单的方法来完成它。
不隶属于 StackOverflow