2010-11-05 23 views
6

¿Dónde puedo encontrar una implementación de multimap para Java que funcione en Android sin tener que incluir ninguna otra clase, etc. Todas las implementaciones que he encontrado requieren otras cosas que requieren otras cosas y se vuelve desordenado rápido. Estoy portando un proyecto de C++ y soy nuevo en Java (y este proyecto también, así que estoy tratando de mantener las cosas lo más idénticas posible mientras lo hago funcionar) por lo que cualquier referencia o ejemplo sería genial.¿Cómo puedo crear un Multimap en Java en Android?

Respuesta

17

Puede usar un Mapa y una Lista para crear una multimapa. Di que quieres asociar un número entero con una lista de tipo de clase T. Utilice el siguiente código:

Map<Integer, List<T>> myMultiMap = new HashMap<Integer, List<T>>();

que podría causar problemas, pero esto debe darle lo que estás buscando.

Otra opción es utilizar las implementaciones de la biblioteca GuavaMultimap.

+0

Estaba buscando en Guava, pero su implementación multimapa parece que requiere algunas otras clases, que a su vez requieren otras ... No quiero instalar e incluir un montón de cosas nuevas, solo quiero un multimap simple eso se comportará como lo hace en C++ para simplificar la transferencia. Gracias por las sugerencias, si no encuentro algo lo suficientemente limpio, puedo implementar un mapa/lista como usted lo recomiende, pero luego tengo que crear una administración de esa estructura ... – ima747

+0

La lista en un mapa resultó ser la La mejor solución para mis necesidades. – ima747

5

Parece que está buscando la biblioteca Apache Commons Collection. Ahí tienes una clase MultiMap. Aún no lo he probado, así que no puedo prometer que funcione, pero parece el adecuado para su proyecto.

No encontrará una función MultiMap en Java, por lo tanto, otros tienen bibliotecas escritas que la contienen. Sin embargo, puede intentar implementarlo usted mismo si su nivel de conocimiento es lo suficientemente alto, pero eso requeriría algo de experiencia en Java. Por lo tanto, su mejor opción es tratar de aprender a usar y, si es necesario, adaptar las bibliotecas para usarlas en Android.