我正在尝试为每个键创建一个(基于哈希的)多重映射,其中包含一个(基于哈希的)多重值集。请参阅示例:
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
所以看来我无法访问我创建的多重集?我希望能够将其作为 Multiset(包装在 Multisets.unmodifiableMultiset() 中)返回。我也不想每次都将它复制到一个新的 Multiset 中。Map<K, Multiset<V>>
除了切换回并在我的代码中添加Multimap
旨在消除的复杂性之外,我还有其他选择吗?