Estoy tratando de tener un Multimap (basado en hash) con un Multiset (basado en hash) de valores para cada clave. Vea el ejemplo:Multimap con HashMultiset para los valores
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");
Pero entonces,
System.out.println(mmap.get("1") instanceof Multiset<?>);
//false, the returned collection is not a HashMultiset,
//but a (private) WrappedCollection
por lo que parece que no puedo acceder al conjunto múltiple creé? Quería poder devolver eso, como un Multiset (incluido en Multisets.unmodifiableMultiset()). Tampoco quiero copiarlo en un nuevo Multiset cada vez. ¿Tengo alguna otra opción que cambiar de nuevo a Map<K, Multiset<V>>
y agregar en mi código la complejidad que el Multimap
quiso eliminar?
Oh, bueno, eso es lo que sospechaba, gracias de todos modos. No estoy exactamente seguro de qué función pedir (ya que siempre existe el peligro de obtenerlo :)). PD: ¡eres tan reservado a veces! –
Me gustaría esto también. ¿No hay posibilidad de que haya sucedido en los últimos ≳4 años? –
Ay, no, hemos perdido la fe en la solución particular que antes pensábamos que podríamos liberar. –