Necesito una colección que se comporte de forma similar a C++ multimap, pero también necesito poder obtener elementos por un rango de claves.¿Hay una colección java ordenada que maneje duplicados?
Respuesta
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.
Puede consultar Google Collections. Tiene implementaciones múltiples para MultiMap
.
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.
- 1. Hibernate inserta duplicados en una colección @OneToMany
- 2. Encontrar duplicados en una secuencia no ordenada de manera eficiente
- 3. ¿Hay un IDE de C++ que maneje bien las plantillas?
- 4. Iterar Doctrina colección ordenada por algún campo
- 5. ¿Cómo puedo hacer que Ruby on Rails maneje errores de registro duplicados de MySQL?
- 6. Java: colección ordenada que permite duplicados, es eficiente desde el punto de vista de la memoria y proporciona inserción rápida + actualización
- 7. ¿Hay alguna herramienta que detecte GUID duplicados?
- 8. Colección Thread-Safe sin pedido ni duplicados
- 9. ¿Valores duplicados en la colección Establecer?
- 10. java: devolver una colección
- 11. ¿Hay una colección Java (o similar) que se comporte como una tabla SQL de identificación automática?
- 12. Hibernate/JPA: duplicados en la colección secundaria
- 13. Esperando que se maneje el evento
- 14. ¿Existe una cola ordenada en .NET?
- 15. ¿Es posible eliminar duplicados de una lista ordenada en menos de O (n) tiempo?
- 16. ¿Qué es una colección java?
- 17. Java ¿Quieres eliminar duplicados de una matriz?
- 18. Java HashMap elementos duplicados
- 19. ¿Hay alguna alternativa a Dictionary/SortedList que permita duplicados?
- 20. Java: ordenar una colección utilizando una CollatorKey
- 21. Obtenga sumas ordenadas de una lista ordenada
- 22. ¿Cómo determinar si una lista está ordenada en Java?
- 23. ¿Hay un control de pestañas Jquery que maneje bien varias líneas de pestañas?
- 24. ¿Cómo aleatorizar una lista ordenada?
- 25. Cómo puedo recibir una notificación si una columna DataGrid está ordenada (y no ordenada)
- 26. ¿Puedo hacer que git-svn maneje svn: eol-style?
- 27. sincroniza lecturas a una colección java
- 28. Java - Hacer una colección de objetos amigable
- 29. Java addAll (colección) vs new ArrayList (colección)
- 30. ¿Es seguro implementar __lt__ para una clase que será ordenada?
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. –
Google Collections ahora es [Guava] (http://code.google.com/p/guava-libraries/) – Muhd