Я пытаюсь иметь (хэш-значение) Multimap с (хэш-based) Multiset значений для каждой клавиши. Смотрите пример:Multimap с HashMultiset для значений
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
предназначено для устранения?
Ой, вот что я подозревал, спасибо в любом случае. Я не совсем уверен, какую функцию нужно просить (поскольку всегда есть опасность получить ее :)). PS: Ты так тайна! –
Мне тоже хотелось бы этого. Нет шансов, что это произошло за последние 4 года? –
Увы, нет, мы потеряли веру в то конкретное решение, которое мы раньше думали, что можем освободить. –