我试图具有(基于散列的)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旨在消除任何其他选择吗?

有帮助吗?

解决方案

恐怕这似乎并不可能。你应该提交功能请求。我暗自怀疑那些狡猾的谷歌人有一个漂亮的那种多重映射的,他们可能会释放出可能潜在帮助你。

scroll top