Para LinkedHashMap, la respuesta es bastante claro que conserva el orden de inserción.
Pero para ListMap, parece que hay algunos problemas aquí.
En primer lugar, hay dos ListMap.
- scala.collection.mutable.ListMap
- scala.collection.immutable.ListMap.
En segundo lugar, el documento de ListMap tiene algo mal por lo que he intentado.
mutable.ListMap
El orden real no es el orden de inserción como se dice.
Y tampoco es el orden inverso de inserción. El resultado que probé es [adelante, segundo, primero, tercero]
Un mapa mutable simple respaldado por una lista, por lo que conserva el orden de inserción.
immutable.ListMap
Como el documento diciendo que, el orden es el orden de inserción.
Una cosa a tener en cuenta es que se almacena internamente en orden de inserción invertido. Y el orden almacenado internamente y el orden iterable/transversal son dos cosas. El orden almacenado internamente decide la complejidad del tiempo de los métodos de búsqueda como head/last/tail/init /.
Esta clase implementa mapas inmutables utilizando una estructura de datos basada en listas. Los iteradores de mapa de lista y los métodos de recorrido cruzan pares clave-valor en el orden en que primero se insertaron suero.
Las entradas se almacenan internamente en orden de inserción invertido, lo que significa que la última clave está al principio de la lista.
solo para tener en cuenta, no recomiendo usar las clases de ListMap de scala en general. Tienen complejidad de tiempo lineal para la mayoría de las operaciones. Entonces, a menos que su mapa sea pequeño, la lógica que usa los mapas de lista realmente se arrastrará. http://docs.scala-lang.org/overviews/collections/performance-characteristics.html –