Próbuję mieć Multimt (oparty na hashach) z Multisetem wartości (dla każdego klucza). Patrz przykład:Multimap z HashMultiset dla wartości
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");
ale potem,
System.out.println(mmap.get("1") instanceof Multiset<?>);
//false, the returned collection is not a HashMultiset,
//but a (private) WrappedCollection
Wygląda więc na to, że nie może uzyskać dostępu do MultiSet stworzyłem? Chciałem móc to zwrócić jako Multiset (w Multisets.unmodifiableMultiset()). Nie chcę za każdym razem kopiować go do nowego Multiset'a. Czy mam jakąkolwiek inną opcję niż przejście z powrotem na Map<K, Multiset<V>>
i dodanie w moim kodzie złożoności, która ma na celu wyeliminowanie Multimap
?
No cóż, podejrzewam, że tak, dziękuję. Nie jestem do końca pewien, o jaką funkcję ma się zwrócić (ponieważ zawsze istnieje niebezpieczeństwo, że to się uda :)). PS: jesteś czasami tak skryty! –
Też chciałbym to. Nie ma szans, żeby to się stało przez ostatnie ≳4 lata? –
Niestety, nie, straciliśmy wiarę w konkretne rozwiązanie, które wcześniej wydawało nam się możliwe. –