Я пытаюсь получить (на основе хеша) 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
Так что, кажется, я не могу получить доступ к созданному мной мультимножеству? Я хотел иметь возможность вернуть это как Multiset (обернутый в Multisets.unmodifiableMultiset ()). Я также не хочу каждый раз копировать его в новый мультисеть. Есть ли у меня какой-либо другой вариант, кроме переключения обратно на Map<K, Multiset<V>>
и добавления в мой код сложности, которую Multimap
намеревался устранить?