Domanda

Sto cercando di avere un (hash-based) con un Multimap (hash-based) Multiset di valori per ogni chiave. Vedere l'esempio:

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");

Ma poi,

System.out.println(mmap.get("1") instanceof Multiset<?>); 
//false, the returned collection is not a HashMultiset,
//but a (private) WrappedCollection

Così sembra non posso accedere al multiset ho creato? Volevo poter tornare che, come Multiset (avvolto in Multisets.unmodifiableMultiset ()). Non voglio copiarlo in un nuovo Multiset ogni volta neanche. Devo qualsiasi altra opzione rispetto al passaggio indietro per Map<K, Multiset<V>> e aggiungendo nel mio codice della complessità che Multimap scopo di eliminare?

È stato utile?

Soluzione

Ho paura che questo non sembra essere possibile. Si dovrebbe presentare una richiesta di funzionalità. Ho un vago sospetto quegli astuti ragazzi di Google hanno un tipo abile di un Multimap che potrebbero potenzialmente rilasciare che potrebbero potenzialmente aiutare.

Altri suggerimenti

Il interfaccia Multimap specifica solo che get(K) restituiscono un Collection<V>. Penso che sarebbe cattiva progettazione per il codice a dipendere o assumere qualsiasi altra cosa.

Si può espandere un po 'di più su ciò che si sta cercando di fare qui? Sembra che ci dovrebbe essere un modo più semplice per realizzarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top