Ich versuche, eine (Hash-basierte) Multimap mit einem (Hash-basierten) Multiset von Werten für jeden Schlüssel zu haben. Siehe Beispiel:Multimap mit HashMultiset für Werte
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");
Aber dann
System.out.println(mmap.get("1") instanceof Multiset<?>);
//false, the returned collection is not a HashMultiset,
//but a (private) WrappedCollection
So scheint es, ich nicht die multiset zugreifen kann ich geschaffen? Ich wollte das als Multiset (in Multisets.unmodifiableMultiset() verpackt) zurückgeben können. Ich möchte es auch nicht jedes Mal in ein neues Multiset kopieren. Habe ich eine andere Möglichkeit, als zurück zu Map<K, Multiset<V>>
zu wechseln und in meinen Code die Komplexität hinzuzufügen, die Multimap
eliminieren soll?
Naja, das habe ich vermutet, danke trotzdem. Ich bin mir nicht sicher, um welches Feature es sich handelt (da es immer die Gefahr gibt, es zu bekommen :)). PS: Du bist manchmal so verschwiegen! –
Ich würde das auch mögen. Keine Chance, dass es in den letzten 4 Jahren passiert ist? –
Leider haben wir den Glauben an die besondere Lösung verloren, von der wir früher dachten, wir könnten sie loslassen. –