2010-04-17 11 views

Respuesta

4

No existe una colección multimapa incorporada en Java. Para resolver esto, puede asignar a cada tecla una lista de valores: Map<String, List<String>>, por ejemplo. De lo contrario, hay bibliotecas de terceros con multimaps implementadas: here es una de ellas.

7

Puede consultar Google Collections. Tiene implementaciones múltiples para MultiMap.

+2

En particular. la clase TreeMultimap de Google Collections incluye un método asMap() que devuelve SortedMap. A continuación, puede llamar a métodos como SortedMap.subMap() para recuperar asignaciones para un rango de claves. –

+2

Google Collections ahora es [Guava] (http://code.google.com/p/guava-libraries/) – Muhd

1

Hay un truco simple alrededor de la creación de colecciones ordenables multimapa en Java ... Utilice el conjunto de datos TreeMap y para las teclas ingrese la clave * 10^4 + contador. De esta manera está almacenando valores clave duplicados en el mapa (al agregar contador, en realidad no son duplicados, por lo que puede almacenarlo en treeMap, pero sabe que no debe usar los últimos cuatro dígitos de los valores clave enteros), sin embargo, su conjunto de datos es siendo ordenado usando sus valores clave originales. Tenga en cuenta que dependiendo de qué tan grande sea su conjunto de datos, es posible que desee ajustar 10^n para asegurarse de que sea más grande que el número de entradas en sus datos.

Cuestiones relacionadas