Estoy usando un HashMap
. Cuando repito sobre el mapa, los datos se devuelven en orden aleatorio (a menudo el mismo). Pero los datos se insertaron en un orden específico, y necesito preservar el orden de inserción. ¿Cómo puedo hacer esto?¿Cómo se conserva el orden de inserción en HashMap?
Respuesta
LinkedHashMap
es exactamente lo que estás buscando.
Es exactamente como HashMap
, excepto que cuando itera sobre él, presenta los elementos en el orden de inserción.
según el documento java dice: Esta lista vinculada define el orden de iteración, que normalmente es el orden en qué teclas se insertaron en el mapa. ¿¿¿¿¿NORMALMENTE ????? ¿Qué significa eso? la inserción de la orden no es segura .... – Xenione
@Xenione: Puede elegir entre orden de inserción y orden de acceso. Vea el último argumento en http://bit.ly/1jZXlCl – NPE
@ Xenione [Tenga en cuenta que el orden de inserción no se ve afectado si se vuelve a insertar una clave en el mapa], cuando una tecla se pone dos veces, la segunda puesta no cambia el orden para iterar el orden no es exactamente el orden de inserción debido a la unicidad de las claves; normalmente significa que si las claves son únicas –
HashMap
no está ordenado por la segunda línea de la documentación:
Esta clase no ofrece ninguna garantía en cuanto a la orden del mapa; en particular, no garantiza que el orden se mantendrá constante a lo largo del tiempo.
Tal vez puedas hacer lo que aix sugiere y usar un LinkedHashMap
u otra colección ordenada. This link can help you find the most appropriate collection to use.
- 1. ¿El conjunto en Ruby siempre conserva el orden de inserción?
- 2. Implementación inamovible de Scala Map que conserva el orden de inserción
- 3. ¿Hash iterativo basado en el orden de inserción?
- 4. HashSet que conserva el pedido
- 5. ¿PLINQ conserva el orden original en una secuencia?
- 6. ¿Cómo iterar sobre Multimap en el orden de inserción?
- 7. un C++ mapa hash que preserve el orden de inserción
- 8. Cómo está Hibernate decidiendo el orden de actualización/inserción/eliminación
- 9. usando boost multi_index_container para conservar la orden de inserción
- 10. Concordancia bipartita ponderada máxima, restricción: el orden de cada gráfico se conserva
- 11. ¿Cómo se conserva el orden de las filas de la tabla temporal cuando se une internamente con otra tabla?
- 12. Implementación de la utilización de orden de inserción java.util.Map como orden
- 13. ¿Will hashmap.keyset() devolverá las claves en el orden en que se agregaron al hashmap?
- 14. Orden de inserción y recuperación de ArrayList
- 15. ¿Hibernate conserva el orden de un LinkedHashSet y, de ser así, cómo?
- 16. Establecer el orden de inserción de preservación de la colección
- 17. ¿Cómo garantizar que se conserve el orden especificado en TestNG.xml?
- 18. Ruby mantener el orden de inserción del hash
- 19. Colecciones Java que mantienen el orden de inserción
- 20. Scala Group¿Para conservar el orden de inserción?
- 21. Cookie no se conserva en MVC
- 22. Mapas (colección) que mantienen la inserción Orden en java
- 23. ¿Cómo se imprime el contenido de un HashMap <String, String> en orden ascendente según sus valores?
- 24. ¿Cómo se conserva la zona horaria en Joda-Time timestamp?
- 25. Infraestructura de entidad de orden de inserción de fila
- 26. ¿Cómo se permite la inserción en DataGridView?
- 27. Linq to Objects: does GroupBy conserva el orden de los elementos?
- 28. document.write() frente a la inserción de nodos DOM: ¿conserva la información del formulario?
- 29. ¿Cómo puedo conservar el orden de inserción de un hash Perl anidado?
- 30. ¿IEnumerable <TSource> Concat <TSource> conserva el orden de los elementos?
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html –